我有一个简单的查询,我需要指定特定日期和时间之前的数据。我的查询结果是错误的,没有将数据限制在特定日期和时间。请帮忙
选择 COLUMN1,TO_CHAR(CREATE_DATE, 'DD/MM/YYYY hh24:mi:ss') create_date 来自 T_TEST_DATA WHERE TO_CHAR(CREATE_DATE, 'DD/MM/YYYY hh24:mi:ss') >= '20/03/2024 22:57:44' 并且 TO_CHAR(CREATE_DATE, 'DD/MM/YYYY hh24:mi:ss') <= '21/03/2024 08:42:53' ORDER BY CREATE_DATE DESC
不要对日期进行字符串比较:D
只需使用日期即可!
SELECT COLUMN1,
TO_CHAR(CREATE_DATE, 'DD/MM/YYYY hh24:mi:ss') create_date
FROM T_TEST_DATA
WHERE CREATE_DATE >= to_date('20/03/2024 22:57:44', 'DD/MM/YYYY hh24:mi:ss')
AND CREATE_DATE < to_date('21/03/2024 08:42:54', 'DD/MM/YYYY hh24:mi:ss')
ORDER BY CREATE_DATE DESC
另请注意,对于日期范围,您应该始终与更大的上限进行比较,这样您就不会遇到闰日或闰秒的麻烦:)