sql datetime 查询问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 08:03:23
我用的是ASP语言,查询的是MS SQL 2000数据库。
假如我有一个表是:in_user 字段为rdate
其他字段rdate里面的值是2008-12-15 11:04:55这样的
我假如查询2008-12-15这一天的所有数据该怎么写sql语句,我现在写的是
sql="select * from in_user where datediff(day,rdate,'"&what&"')=0 order by id desc"
这个what就是接受前面输入时间的变量,可是现在有一个问题就是,查询 的时候,只能输入2008-12-15,这样就可以显视出来,如果输入2008-12就报错,该怎么写这个句话,高手解答。

你不是要查询哪一天么,怎么只输入年月啊,日这么可以没有呢?
或者你可以在使用what变量之前把他处理下么,字符长度不够的肯定不对了,要么让用户重新输入,要么系统自动补全了,如“2008-12”你就自动给他加上“2008-12-01”。

我不知道SQL 2000的语法 但是你可以在ASP程序中处理一下 如果输入2008-12-15 怎么样 输入2008-12 给他补齐就可以了 因为你用了 DATEDIFF函数 所以输出2008-12肯定是错的,愚见!

楼主首先:输入2008-12这样的格式筛选datetime是不行的.
因为你查询时间是从字符串向 datetime 转换

如:需要查询十二月所有的只能这样查
select * from in_user
where rdate between '2008-12-1' and '2008-12-31'

楼主要实现的功能和操作的方法完全就是两回事嘛~~~~2008-12对于字段类型和datediff()来说都是错误的数据,当然不行了~~!