我有一个列"create_date"的表.我想选择在前一天下午6点到当天下午6点之间插入的记录.这个数据每天都要提取,无需手动输入日期和时间.所以任何人都可以帮我写一个查询来获取属于这个标准的记录.列数据类型为Date.
提前致谢.
对于前一天的 6PM,您可以使用TRUNC(SYSDATE -1),这会将时间部分截断为00:00:00,然后添加 18 小时。同样,对于今天,TRUNC(SYSDATE)添加 18 小时。
SQL> SELECT to_char(trunc(SYSDATE -1) + 18/24,'mm/dd/yyyy hh24:mi:ss')
2 FROM dual;
TO_CHAR(TRUNC(SYSDA
-------------------
02/25/2015 18:00:00
SQL>
Run Code Online (Sandbox Code Playgroud)
因此,trunc(SYSDATE -1) + 18/24给出昨天的日期为下午 6 点。
测试用例:
SQL> WITH DATA AS
2 ( SELECT 'text' col, SYSDATE create_date FROM dual
3 )
4 SELECT *
5 FROM DATA
6 WHERE create_date
7 BETWEEN (TRUNC(sysdate -1) + 18/24) AND (TRUNC(sysdate) + 18/24)
8 /
COL CREATE_DA
---- ---------
text 26-FEB-15
SQL>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1428 次 |
| 最近记录: |