如何通过与当前日期的时间差来获取当前日期

时间:2018-11-22 07:52:01

标签: sql sql-server

我想要昨天7Am到今天7Am之间的数据,为此我正尝试今天7AM(2018-11-22 07:00:00 Am)来获取数据。

select getdate() as todate,dateadd(hh,-7,getdate()) as sehrsrem,
       datediff(hour,dateadd(hh,-7,getdate()),getdate()) 
from   dump;

通过使用datediff()我得到了7号,如何获取完整日期。

谢谢。

2 个答案:

答案 0 :(得分:1)

这将为您提供所需的日期时间

select  dateadd(day, datediff(day, 0, getdate()), -1) + '07:00' as yesterday_7am,
        dateadd(day, datediff(day, 0, getdate()),  0) + '07:00' as today_7am

要获取这些日期之间的数据,请在WHERE子句中使用它

WHERE  date_column >= dateadd(day, datediff(day, 0, getdate()), -1) + '07:00'
AND    date_col    <  dateadd(day, datediff(day, 0, getdate()),  0) + '07:00'

答案 1 :(得分:0)

通过将GETDATE()转换为DATE类型,我们删除了时间部分。之后,您所需要做的就是增加7小时以获得今天的期望值,减去17小时以获得昨天的期望时间。

DECLARE @ToDay DATETIME = CONVERT(DATE,GETDATE())

SELECT DATEADD(HH,   7, @ToDay) AS Today
     , DATEADD(HH, -17, @ToDay) AS Yesterday

enter image description here