获取一年前的今天的日期

时间:2018-11-07 13:41:41

标签: sql-server tsql sql-server-2005

我有一个脚本,该脚本需要今天但从一年前开始的日期,但是我也需要它与时间保持一致,并采用以下格式。

 2017-11-07 00:00:00.000

我目前到了一个有去年日期的地方,而不是00:00:00.000时间戳。

select  DATEADD(year, -1, GETDATE())

这将返回查询运行的时间。

 2017-11-07 13:37:10.770

这是一个where子句,因为我需要从去年的今天起获取一些数据,因此寻找一个where子句,该子句从去年的这个日期开始于午夜,结束于23:00:00.000

它用于运行SQL Server 2005的客户端。

1 个答案:

答案 0 :(得分:5)

尝试使用:

CONVERT(DateTime, DATEDIFF(DAY, 0, DATEADD(year, -1, GETDATE())))

这里是一个查询,以查看实际效果:

SELECT
    GETDATE() AS today,
    DATEADD(year, -1, GETDATE()) AS today_last_year,  -- what you already have
    CONVERT(DateTime, DATEDIFF(DAY, 0, DATEADD(year, -1, GETDATE()))) AS
        today_last_year_midnight;

此返回(截至撰写此答案时):

enter image description here