我有一个专栏的格式是-
MAX_DATE PROCESS_DATE
2022-10-14T16:09:09.272+00:00 2022-11-08T15:43:29.027+00:00
在编写条件时
SELECT * FROM ANC
WHERE MAX_DATE > PROCESS_DATE
即使这样,仍然有很多行出现,尽管它们不满足条件。两者的日期格式是相同的,我不知道如何将它们更改为相同的日期格式,我尝试了下面的方法,但仍然得到了所有行,因此上述条件不起作用
SELECT * FROM ANC
WHERE TO_DATE(to_char(MAX_DATE,'DD-MM-YYY'),'DD-MM-YYY') > TO_DATE(to_char(PROCESS_DATE,'DD-MM-YYY'),'DD-MM-YYY')
同时,它还提供了如下输出:
MAX_DATE PROCESS_DATE
2022-10-14T00:00:00.000+00:00 2022-11-08T00:00:00.000+00:00
如何比较这两个日期?
2条答案
按热度按时间xesrikrc1#
如果列的数据类型为
TIMESTAMP WITH TIME ZONE
,则直接比较列即可:如果列的数据类型为
VARCHAR2
,那么首先,这是一种不好的做法,您应该修改表并将数据类型更改为TIMESTAMP WITH TIME ZONE
;其次,如果要将它们保留为字符串,则需要在比较它们之前使用TO_TIMESTAMP_TZ
函数将它们转换为时间戳:huwehgph2#
请 尝试 以下 查询
中 的 每 一 个