如何在sql中获取特定日期的开始时间和结束时间

时间:2017-01-08 23:11:16

标签: sql oracle

我想在sql中获取一天的开始日期时间和结束日期时间。 例如:今天的开始日期时间是:2017年1月8日00:00:00 截止日期时间是2017年1月8日23:59:59

2 个答案:

答案 0 :(得分:5)

使用间隔(而不是幻数)使代码自我记录:

SELECT TRUNC( SYSDATE ) AS start_of_today,
       TRUNC( SYSDATE ) + INTERVAL '1' DAY - INTERVAL '1' SECOND AS end_of_today
FROM   DUAL;

或者,时间戳:

SELECT CAST( TRUNC( SYSDATE ) AS TIMESTAMP(9) ) AS start_of_today,
       CAST( TRUNC( SYSDATE ) AS TIMESTAMP(9) )
         + INTERVAL '1' DAY - INTERVAL '0.000000001' SECOND(1,9) AS end_of_today
FROM   DUAL;

答案 1 :(得分:4)

您可以使用:

select trunc(sysdate) as today_start,
       trunc(sysdate + 1) - 1 / (24*60*60) as today_end

但是,对于比较,我不会使用" end"今天的时间。使用不平等和第二天:

where datetime >= trunc(sysdate) and datetime < trunc(sysdate + 1)