SQL查询,从01-01-2022以后获取数据



我有一个格式为2022-05-26T13:50:44.000Z, 2018-10-05T18:14:00.000Z的日期。我只希望从这个专栏中选择2022年之后的日期。但是当我使用下面的查询时,它根本不起作用。

to_date(TO_CHAR(TRUNC(Paaf.last_update_date),'MM-DD-YYYY'),'MM-DD-YYYY') >= TO_DATE('01-01-2022','MM-DD-YYYY')

如何比较日期,以便只选择01-01-2022之后的日期

如果我执行Paaf.last_update_date like '%2022%',我将得到输出,"%当前年份"%'让like工作

您不需要截断然后转换为字符串再转换回日期。

DATE列与日期文字进行比较:

SELECT *
FROM   table_name paaf
WHERE  paaf.last_update_date >= DATE '2022-01-01'

如果您希望日期2022-01-01 00:00:00之后,请使用>而不是>=

假设日期部分格式为带时区。使用cast和to_utc_timestamp_tz oracle函数的方法如下:

with x as ()select CAST(to_utc_timestamp_tz('2022-05-26T13:50:44.000Z') AS DATE) AS sample_year from dual(Select * from x where sample_year>TO_DATE (' 2021-01-01 ', ' YYYY-MM-DD ');

刚才做了如下检查,应该会有帮助。

create table paaf(last_update_date timestamp);
<>以前✓
insert into paaf values(TIMESTAMP '2021-12-01 05:30:00');

1行受影响

insert into paaf values(TIMESTAMP '2022-12-01 05:30:00');

1行受影响

insert into paaf values(DATE '2022-01-01');

1行受影响

select * from paaf where last_update_date >= TIMESTAMP '2022-01-01 00:00:00';
| LAST_UPDATE_DATE ||:------------------------ || 01-dec-22 05.30.00.000000 || 01-JAN-22 00.00.00.000000 |

db<此处小提琴>

最新更新