日期:2014-05-18  浏览次数:20856 次

关于数据库记录查询
需要查询   注册日期在   1   个月之内   、1-3个月之内、半年之内   、1年以上  
怎样写这个sql   语句?
注册日期字段名:   U_SaveTime

sql   = "select   *   from   User_Reg_Info   where   "

希望大人们解答一下。

------解决方案--------------------
getdate //获得系统当前日期
datepart //获取日期指定部分(年月日时分表)
具体怎么使用可以Google
------解决方案--------------------
加几个判断,分别拿当前日期和数据库的日期减,判断在哪个时期范围
------解决方案--------------------
给你思路:得到当前年月,
1.一个月以内注册的:那么时候必大于等于当前年月(2007-08-01 00:00:00)小于(2007-09-01 00:00:00)
其余类似可解决或写到存储过程中,只传入当前年月即可
------解决方案--------------------
--一个月内的数据
select * from User_Reg_Info where datediff(mm,U_SaveTime,getdate()) <=1

1 个月之内 、1-3个月之内、半年之内 、1年以上 的数据依次类推
------解决方案--------------------
一个月内
select * from User_Reg_Info where datediff(m,U_SaveTime,getdate())=1
1-3个月之内
select * from User_Reg_Info where datediff(m,U_SaveTime,getdate())> 1 and datediff(m,U_SaveTime,getdate()) <3
半年之内
select * from User_Reg_Info where datediff(m,U_SaveTime,getdate()) <=1
1年以上
select * from User_Reg_Info where datediff(y,U_SaveTime,getdate())> =1
------解决方案--------------------
sql = "select * from User_Reg_Info where
(datediff(month,字段,getdate()) <1) "

------解决方案--------------------
dateiff正解

另外, 揭贴才是王道!