select * from table where datediff('d',时间列名,DateTime.Now)>1 //>1日 select * from table where datediff('d',时间列名,DateTime.Now)>7 //>1周 select * from table where datediff('m',时间列名,DateTime.Now)>1 //>1月 select * from table where datediff('y',时间列名,DateTime.Now)>1 //>1年
select * from [table] where datediff(day,[字段],getdate())>6 -- 时间差大于6 的为一周及以上 select * from [table] where datediff(month,[字段],getdate())>0 --一月 select * from [table] where datediff(year,[字段],getdate())>0 --一年
测试过select * from [table] where datediff(month,[字段],getdate())>0是上个月或以前未联系 不是一个月未联系
今天是2012-10-20select * from [table] where datediff(month,[字段],getdate())>0这一句查询出的是2012-10-1以前 我需要的是2012-9-21以前
暂时用select * from [table] where datediff(day,[字段],getdate())>30 一个月没联系select * from [table] where datediff(day,[字段],getdate())>365 一年没联系不知道有没更好的方法
select * from [table] where datediff(day,[字段],getdate())> day(dateadd(dd,-1,dateadd(mm,1,dateadd(DD,-DAY(getdate())+1,getdate())))) 一月
SELECT *, CASE WHEN DATEDIFF(YEAR,[最后联系时间],GETDATE()) >= 1 THEN '一年以上未联系' WHEN DATEDIFF(MONTH,[最后联系时间],GETDATE()) >= 1 THEN '一月以上未联系' ELSE '一周以上未联系' END FROM [TABLE] WHERE DATEDIFF(DAY,[最后联系时间],GETDATE()) > 6
SELECT *, CASE WHEN DATEDIFF(DAY,[最后联系时间],GETDATE()) > 365 THEN '一年以上未联系' WHEN DATEDIFF(DAY,[最后联系时间],GETDATE()) > 30 THEN '一月以上未联系' -- 按30天计,如果要按不同月份不同天数计,似乎没有必要 ELSE '一周以上未联系' END FROM [TABLE] WHERE DATEDIFF(DAY,[最后联系时间],GETDATE()) > 6
select * from table where datediff('d',时间列名,DateTime.Now)>7 //>1周
select * from table where datediff('m',时间列名,DateTime.Now)>1 //>1月
select * from table where datediff('y',时间列名,DateTime.Now)>1 //>1年
select * from [table] where datediff(day,[字段],getdate())>6 -- 时间差大于6 的为一周及以上
select * from [table] where datediff(month,[字段],getdate())>0 --一月
select * from [table] where datediff(year,[字段],getdate())>0 --一年
SELECT *,
CASE WHEN DATEDIFF(YEAR,[最后联系时间],GETDATE()) >= 1 THEN '一年以上未联系'
WHEN DATEDIFF(MONTH,[最后联系时间],GETDATE()) >= 1 THEN '一月以上未联系'
ELSE '一周以上未联系'
END
FROM [TABLE] WHERE DATEDIFF(DAY,[最后联系时间],GETDATE()) > 6
SELECT *,
CASE WHEN DATEDIFF(DAY,[最后联系时间],GETDATE()) > 365 THEN '一年以上未联系'
WHEN DATEDIFF(DAY,[最后联系时间],GETDATE()) > 30 THEN '一月以上未联系' -- 按30天计,如果要按不同月份不同天数计,似乎没有必要
ELSE '一周以上未联系'
END
FROM [TABLE] WHERE DATEDIFF(DAY,[最后联系时间],GETDATE()) > 6