【发布时间】:2022-03-26 04:09:44
【问题描述】:
我想在sql中获取一天的开始日期时间和结束日期时间。 例如:今天开始日期时间是:2017 年 1 月 8 日 00:00:00 结束日期时间为 2017 年 1 月 8 日 23:59:59
【问题讨论】:
我想在sql中获取一天的开始日期时间和结束日期时间。 例如:今天开始日期时间是:2017 年 1 月 8 日 00:00:00 结束日期时间为 2017 年 1 月 8 日 23:59:59
【问题讨论】:
使用间隔(而不是幻数),因此代码是自记录的:
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;
【讨论】:
你可以使用:
select trunc(sysdate) as today_start,
trunc(sysdate + 1) - 1 / (24*60*60) as today_end
不过,为了比较,我不会使用今天的“结束”时间。使用不等式和次日:
where datetime >= trunc(sysdate) and datetime < trunc(sysdate + 1)
【讨论】:
--Start Of Day Datetime
select dateadd(MINUTE, 0, dateadd(day, datediff(day, 0, getdate()), 0)) as StartDate
--End Of Day Datetime
select dateadd(MINUTE, 1439, dateadd(day, datediff(day, 0, getdate()), 0)) as EndDate
【讨论】: