gpt4 book ai didi

sql - Oracle:如何在午夜之前选择当前日期(今天)?

转载 作者:太空狗 更新时间:2023-10-30 01:45:14 30 4
gpt4 key购买 nike

使用 Oracle,如何在 11:59:59 选择当前日期(即 SYSDATE)?

考虑到午夜的定义might be a little ambiguous (星期四午夜是指跨越星期四和星期五还是跨越星期三和星期四?)。

最佳答案

要在午夜之前(一秒之前)选择当前日期(今天),您可以使用以下任何语句:

SELECT TRUNC(SYSDATE + 1) - 1/(24*60*60) FROM DUAL
SELECT TRUNC(SYSDATE + 1) - INTERVAL '1' SECOND FROM DUAL;

它的作用:

  1. 将一天加到SYSDATE:SYSDATE + 1,现在日期是明天
  2. 使用 TRUNC 删除日期的时间部分,现在日期是明天 00:00
  3. 从日期中减去一秒:- 1/(24*60*60)- INTERVAL '1' SECOND FROM DUAL,现在日期是今天11:59:59

注意 1:如果您想检查日期间隔,您可能需要查看下面的@Allan 回答。

注意 2: 作为替代方案,您可以使用另一个(更易于阅读):

SELECT TRUNC(SYSDATE) + INTERVAL '23:59:59'  HOUR TO SECOND FROM DUAL;
  1. 使用 TRUNC 删除当前日期的时间部分,现在日期是今天 00:00
  2. 添加时间间隔 23:59:59,现在日期是今天 11:59:59

注意 3: 要检查结果,您可能需要添加格式:

SELECT TO_CHAR(TRUNC(SYSDATE + 1) - 1/(24*60*60),'yyyy/mm/dd hh24:mi:ss') FROM DUAL
SELECT TO_CHAR(TRUNC(SYSDATE + 1) - INTERVAL '1' SECOND,'yyyy/mm/dd hh24:mi:ss') FROM DUAL
SELECT TO_CHAR(TRUNC(SYSDATE) + INTERVAL '23:59:59','yyyy/mm/dd hh24:mi:ss') FROM DUAL

关于sql - Oracle:如何在午夜之前选择当前日期(今天)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26182524/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com