Sql server 如何在sql中查找前10年的日期从一年的第一天到今天的日期

Sql server 如何在sql中查找前10年的日期从一年的第一天到今天的日期,sql-server,tsql,Sql Server,Tsql,我正在写一个查询,需要从中获取过去10年(2009年1月1日)到今天(2019年4月7日)的数据。但我写的查询返回的是2009年4月7日 这是我写的代码: (SELECT DATEADD(YEAR,-10,GETDATE())) 如何使其工作,使其能够将2009年1月1日的日期返回到今天的日期 (SELECT DATEADD(YEAR,-10,GETDATE())) 我希望得到2009年1月1日至2019年4月7日的结果,您可以使用: SELECT GETDATE(), -- curren

我正在写一个查询,需要从中获取过去10年(2009年1月1日)到今天(2019年4月7日)的数据。但我写的查询返回的是2009年4月7日

这是我写的代码:

(SELECT DATEADD(YEAR,-10,GETDATE()))
如何使其工作,使其能够将2009年1月1日的日期返回到今天的日期

(SELECT DATEADD(YEAR,-10,GETDATE()))
我希望得到2009年1月1日至2019年4月7日的结果,您可以使用:

SELECT GETDATE(),  -- current date
 DATEADD(yy, DATEDIFF(yy, 0, DATEADD(YEAR,-10,GETDATE())), 0) -- 1st day of year 10 years ago

您也可以使用“零件日期”功能

select dateadd(year, -10, datefromparts(year(getdate()),1,1))
输出:

2009-01-01

很抱歉没有看到您的datefromparts()+1@JohnCappelletti总是像预期的那样好;-)是的,他们有时会,但我们应该友好@johncapelletti;-)