asp sql语句中怎么比对两个时间

    今天在做一个关于asp的sql查询语句,希望找出注册时间在超过30天的60条记录??但是出错了好多次,具体问题描述如下


    首先asp中,regTime是sql server里面的表user里面的某个字段,类型为datetime,格式为getdate,然后我在asp的查询语句中如下检索为什么出错


sql = "select top 30 id ,username ,userpass from [user] where regTime < " & date() - 30 & " order by regTime ,id desc"
这个没有报错,但是却检索不出30天以前注册的会员,


没有任何记录。。。

sql = "select top 30 id ,username ,userpass from [user] where regTime > " & date() - 30 & " order by regTime ,id desc"
我这样就可以检索出数据了,但是好像数据都会被检索出来的说,


有记录,但是不正确,


但是我用now() - 30又会提示语法错误,然后时间格式其实是一样的,这个又是为什么呢??

regTime是getddate函数,now不是就一样的时间格式了吗??为什么还不能进行比较???



最终我反复查找了资料使用以下语句竟然可以了。。。
datediff(d ,regTime ,getdate()) > 30


具体sql语句如下:
sql = "select top 30 id ,username ,userpass from [user] where datediff(d ,regTime ,getdate()) > 30 order by regTime ,id desc"

成功执行,查找出正确的记录来了。。但是还是不知道为什么date - 30 和now - 30并没办法查出记录,尤其是now的还不合法,提示错误了。。。



进行细化:
近两个星期记录:
sql= "select   *   from   [user]   where   datediff(week ,regTime ,getdate()) <=2 "
近两个个月记录:
sql= "select   *   from   [user]  where   datediff(month ,regTime ,getdate()) <=2 "
近两年记录:
sql= "select   *   from   [user]   where   datediff(year ,regTime ,getdate()) <=2 " 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值