sql - 检索从前一天下午 6 点到今天下午 6 点的数据

标签 sql oracle

我有一张带有“create_date”列的表。我想选择从前一天下午 6 点到今天下午 6 点插入的记录。每天都可以获取这些数据,无需手动输入日期和时间。
那么任何人都可以帮助我编写一个查询来获取符合此条件的记录。
列数据类型为日期。

提前致谢。

最佳答案

对于前一天下午 6 点,您可以使用 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>

所以,截断(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>

关于sql - 检索从前一天下午 6 点到今天下午 6 点的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28736490/

相关文章:

mysql - 如何将时间以秒为单位转换为 HH :MM:SS format in MySQL?

java - Spring Batch : Could not increment identity; nested exception is com. microsoft.sqlserver.jdbc.SQLServerException : Invalid object name 'BATCH_JOB_SEQ' ?

python - 使用 Python 批量更新 SQL (Oracle)

sql - 存在执行计划太昂贵的情况

javascript - Oracle JET CLI "ojet"未定义

SQL 多个共享 WHERE 条件

sql - 如何将表添加到 postgreSQL 中的特定模式?

mysql - 选择找到条目 'x' 的 ID 和 COLUMN_NAME

java - 从 Java 调用 PHP

Oracle Apex/PLSQL : Can i use apex data export to store the file into another table as a blob?