Oracle中如何根据日期和时间获取查询结果?

问题描述 投票:0回答:1

我有一个简单的查询,我需要指定特定日期和时间之前的数据。我的查询结果是错误的,没有将数据限制在特定日期和时间。请帮忙

选择 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

oracle datetime
1个回答
0
投票

不要对日期进行字符串比较: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

另请注意,对于日期范围,您应该始终与更大的上限进行比较,这样您就不会遇到闰日或闰秒的麻烦:)

© www.soinside.com 2019 - 2024. All rights reserved.