获取一年前的今天日期
Posted
技术标签:
【中文标题】获取一年前的今天日期【英文标题】:Get todays date a year ago 【发布时间】:2019-04-10 22:50:16 【问题描述】:我有一个脚本,我需要今天的日期,但从一年前开始,但我还需要它与时间采用以下格式。
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 的客户端。
【问题讨论】:
Sql Server 2005 不再受支持。事实上,对 2008 的扩展支持即将结束 - 所以您最好告诉您的客户他们应该升级到现代版本的 SQL Server。\ 已告知客户。但是我不管理他们的 IT 预算或项目。 你有没有想过闰年应该如何发挥作用?如果一年前的今天不存在怎么办?一年前的昨天的日期是否比一年前的今天早两天有关系吗?等等。 @Damien_The_Unbeliever 同意您的观点,但是我们被告知这是一个 6 个月的解决方案,直到实施新的报告工具。所以我们不必担心这个 是的,他们显然不会让事情停留的时间比他们应该的时间长:-) 【参考方案1】:尝试使用:
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;
返回(截至撰写此答案时):
【讨论】:
这很好用,我想知道我如何将它设置在另一端到 23:00:00.000 @ThisIsLegend1016:SELECT DATEADD(hour, 23, DATEADD(d,0,DATEDIFF(d,0, DATEADD(year, -1, GETDATE()))))
。 SQL 可以如此“可读”
@ThisIsLegend1016,很高兴您找到了答案。请花点时间单击答案左侧的灰色复选标记,将其标记为您接受的答案。它让其他用户知道该问题有答案,并奖励回答的用户一些信誉积分。你也会得到一些。以上是关于获取一年前的今天日期的主要内容,如果未能解决你的问题,请参考以下文章
当半年不碰的webpack + vuejs项目重见天日时遇到的神坑!