如何获取上一年的最后日期,例如SQL 中的 20211231?
甚至获取列表中之前的最后日期
20211231
20221231
20191231
20181231
我想在 SSRS 中使用该信息。
谢谢你。
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
可能是“最干净”且最容易理解的。
试试这个:
DATEADD(年,DATEDIFF(年,0,GETDATE()),-1)