如何比较从数据库中的日期值类型到今天的年份

时间:2014-03-17 08:48:39

标签: sql

如何比较今天的年份数据库年份(日期值类型)

这是数据库中的数据> 2012-11-13 00:00:00.000

SELECT COUNT(DISTINCT applicationId)
FROM custleaseapplication
WHERE @dateOfApplication(year) == year today 

3 个答案:

答案 0 :(得分:2)

您可以使用GetDate获取sql-server中的当前DateTime,并且可以使用YEAR将日期时间作为int。

SELECT COUNT(DISTINCT applicationId) 
FROM custleaseapplication 
WHERE YEAR(DateColumn) = YEAR(GetDate())

答案 1 :(得分:1)

WHERE YEAR(@dateOfApplication) = YEAR(GETDATE())

答案 2 :(得分:0)

虽然

WHERE YEAR(DateColumn) = YEAR(GetDate())

将获取您想要的数据,它还将强制数据库执行全表扫描,而不是使用列上的任何索引。

如果year是实际的4位数年份,您只需编写

即可
WHERE Year >= YEAR(GetDate())  AND Year < YEAR(GetDate()) +1

如果Year是数字类型,这将有效。

如果列是文本类型,则可能工作,因为SQL Server会在比较之前将YEAR()的结果转换为文本。排序规则的差异可能会阻止服务器使用任何基础索引,从而强制进行表扫描。