我使用以下sql将字符串与日期oracle进行比较,但得到的结果不正确。我尝试了to\u date、to\u char选项,但没有得到任何正确的结果。
select order from table where Date1 <> to_char(Date2, 'DD-MON-YYYY HH24:MI');
地点日期1:10-JUN-2101.00.00.000000000 AM日期2:10-JUN-2021 01:00
上述sql返回上述Date1和Date2的行,尽管它们相等。Date1也是varchar格式,Date2是带有本地时区格式的时间戳(6)。
根据您的表格和数据:
Date1是varchar格式,Date2是带有本地时区格式的时间戳(6)。
CREATE TABLE table_name (
date1 VARCHAR2(20),
date2 TIMESTAMP(6) WITH LOCAL TIME ZONE
);
INSERT INTO table_name (
date1,
date2
) VALUES (
'10-JUN-2021 01:00',
TIMESTAMP '2021-06-10 01:00:00.000000'
);
您可以将日期1转换为时间戳并比较:
SELECT *
FROM table_name
WHERE TO_TIMESTAMP( Date1, 'DD-MON-YYYY HH24:MI' ) <> Date2;
或者,将日期2转换为字符串:
SELECT *
FROM table_name
WHERE Date1 <> TO_CHAR( Date2, 'DD-MON-YYYY HH24:MI' );
它们都输出零行: