在SQL中获取上一年的最后一天

问题描述 投票:0回答:2

如何获取上一年的最后日期,例如SQL 中的 20211231?

甚至获取列表中之前的最后日期

20211231
20221231
20191231
20181231

我想在 SSRS 中使用该信息。

谢谢你。

sql sql-server reporting-services
2个回答
7
投票

DATEFROMPARTS
是一种方法:

SELECT DATEFROMPARTS(YEAR(GETDATE())-1,12,31);

另一个,在完全不受支持的旧版本上,将使用一些日期数学:

SELECT DATEADD(DAY,-1,DATEADD(YEAR,DATEDIFF(YEAR,0,GETDATE()),0));

在未来的版本中,您还可以使用

DATE_BUCKET
:

SELECT DATEADD(DAY, -1, DATE_BUCKET(YEAR,1,GETDATE()));
--or use a different origin
SELECT DATE_BUCKET(YEAR,1,GETDATE(),CONVERT(datetime,'19001231'));

老实说,

DATEFROMPARTS
可能是“最干净”且最容易理解的。


0
投票

试试这个:

DATEADD(年,DATEDIFF(年,0,GETDATE()),-1)

© www.soinside.com 2019 - 2024. All rights reserved.