我有一个名为DateTime
的{{1}}列,其中包含如下日期:
EXP_Date
我想比较它们,比如这个查询:
2014-07-13 00:00:00.000
我希望看到服务过期超过一个月的客户数量。
我知道这个查询不会给我正确的答案,最好的方法是将年/月/日分成三列,但不是任何其他方式来比较它们,因为它们是?
答案 0 :(得分:4)
您可以使用DATEADD
SELECT COUNT(*)
FROM DB
where EXP_DATE < DATEADD(month, -1, GETDATE())
答案 1 :(得分:2)
试试这个
SELECT COUNT(*)
FROM DB
where DATEADD(month, -1, GETDATE()) > EXP_DATE
答案 2 :(得分:2)
SELECT COUNT(EXPIRE)FROM
(Select CASE WHEN EXP_DATE < DATEADD(month, -1, GETDATE())THEN 1 ELSE 0 END)AS EXPIRE FROM DB
)tt
答案 3 :(得分:2)
使用 DATEDIFF
的另一种方法SET DATEFORMAT DMY --I like to use "dateformat"
SELECT COUNT(*)
FROM DB
WHERE (DATEDIFF(DAY,@EXP_DATE,GETDATE())) >= 30 --Remember, instead "Day" you can use week, month, year, etc
语法:DATEDIFF(datepart,startdate,enddate) 离开:年,季,月,日,周......
有关详细信息,请访问MSDN