如何比较今天的年份数据库年份(日期值类型)
这是数据库中的数据> 2012-11-13 00:00:00.000
SELECT COUNT(DISTINCT applicationId)
FROM custleaseapplication
WHERE @dateOfApplication(year) == year today
答案 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()
的结果转换为文本。排序规则的差异可能会阻止服务器使用任何基础索引,从而强制进行表扫描。