【问题标题】:How to get start time and end time of a particular day in sql如何在sql中获取特定日期的开始时间和结束时间
【发布时间】:2022-03-26 04:09:44
【问题描述】:

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

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    使用间隔(而不是幻数),因此代码是自记录的:

    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;
    

    【讨论】:

      【解决方案2】:

      你可以使用:

      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)
      

      【讨论】:

        【解决方案3】:
        --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
        

        【讨论】:

          猜你喜欢
          • 2021-09-06
          • 1970-01-01
          • 2020-02-22
          • 2014-05-29
          • 1970-01-01
          • 2021-08-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多