我知道这个很容易,但是在比较SQL中的日期时我总是有一个噩梦,请有人帮我解决这个问题,谢谢。
我需要获得现在的月份和年份,然后将其与存储在数据库中的日期进行比较。
数据库中的时间格式:
2015-08-17 11:10:14.000
我需要比较现在的月份和年份,如果它的> 12个月大我会增加一个数。我只需要这个参数为真的行数。
答案 0 :(得分:1)
我假设您有一个datetime字段。
您可以使用DATEDIFF功能,该功能采用"交叉边界",开始日期和结束日期。
您的边界是月份,因为您只对年份和月份感兴趣,而不是几天,因此您可以使用month
宏。
您的开始时间是存储在表格行中的值
你现在的结束时间。您可以选择SYSDATETIME功能获得系统时间。
因此,假设您的表名为mtable
且日期时间对象存储在其date
字段中,您只需查询:
SELECT COUNT(*) FROM mtable where DATEDIFF(month, mtable.date, (SELECT SYSDATETIME())) > 12