获取SQL当前年份

时间:2014-05-30 21:20:23

标签: sql tsql datetime

我正在尝试提取报告的数据,而我正在制作年度报告。表中的列格式为datetime。我正在尝试运行一个select语句来获取date =今年的所有结果。

例如:

SELECT  A.[id], A.[classXML]
FROM   tuitionSubmissions as A
WHERE A.[status] = 'Approved' AND A.[reimbursementDate] = THISYEAR
FOR    XML PATH ('data'), TYPE, ELEMENTS, ROOT ('root');

有没有一种方法来实现这个目标?

2 个答案:

答案 0 :(得分:12)

是的,事实上非常容易:

WHERE YEAR(A.[reimbursementDate]) = YEAR(GETDATE())

答案 1 :(得分:2)

如果性能是一个问题,这应该是一个更好的方法(虽然它不是可读的)

where A.[reimbursementDate] between  
     DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0) and
     DATEADD(MILLISECOND, -3, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) + 1, 0))

那些时髦的DATEADD语句返回当年的第一天和最后一天(截至12月31日23:59:59.997)。由于reimbursementDate不包含在函数中,因此查询将能够利用任何适用的索引。