在SQL Server中比较日期
我有一个名为EXP_Date的DateTime列,其中包含如下日期:在SQL Server中比较日期,sql,sql-server,date,sql-server-2008-r2,Sql,Sql Server,Date,Sql Server 2008 R2,我有一个名为EXP_Date的DateTime列,其中包含如下日期: 2014-07-13 00:00:00.000 我想比较它们,如以下查询: SELECT COUNT(*) FROM DB WHERE ('2014-07-15' - EXP_DATE) > 1 我希望看到服务过期超过一个月的客户数量 我知道这个查询不会给我正确的答案,最好的方法是将年/月/日分为三列,但没有其他方法可以比较它们吗?您可以使用 试试这个 SELECT COUNT(*) FROM DB wher
2014-07-13 00:00:00.000
我想比较它们,如以下查询:
SELECT COUNT(*)
FROM DB
WHERE ('2014-07-15' - EXP_DATE) > 1
我希望看到服务过期超过一个月的客户数量
我知道这个查询不会给我正确的答案,最好的方法是将年/月/日分为三列,但没有其他方法可以比较它们吗?您可以使用
试试这个
SELECT COUNT(*)
FROM DB
where DATEADD(month, -1, GETDATE()) > EXP_DATE
使用DATEDIFF的另一种方法
语法:DATEDIFF datepart、startdate、enddate
出发日期:年、季、月、日、周
有关更多信息,请访问
对一些人来说可能是这样。我更喜欢这个。是的,这只是一个观点,事实上。。。只是想知道是否有一个具体的原因;如果我想查看已过期至少2个月但不超过5个月的客户数量,2
SELECT COUNT(*)
FROM DB
where DATEADD(month, -1, GETDATE()) > EXP_DATE
SELECT COUNT(EXPIRE)FROM
(Select CASE WHEN EXP_DATE < DATEADD(month, -1, GETDATE())THEN 1 ELSE 0 END)AS EXPIRE FROM DB
)tt
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