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

GETDATE()使用问题?
表中有两个字段开始时间strtime和结束时间endtime
我想查出当前时间getdate()里在表中设定区间的数据
如何实现呢?

------解决方案--------------------
getdate() betwwen strtime and endtime
or
getdate()>=strtime and getdate() <=endtime
------解决方案--------------------
SQL code
select * from table1 where getdate() between strtime and endtime

------解决方案--------------------
我想查出当前时间getdate()里在表中设定区间的数据 ?
没明白!

如果你要查某个时间范围内的数据
直接

select * from table_name where 时间字段 between 开始时间 and 结束时间 --注意,时间字段,开始时间,结束时间的时间格式哦,最好是统一以下格式
------解决方案--------------------
getdate()出来就精确到秒啊,还要精确可以用convert格式化下
------解决方案--------------------
select * from table where getdate()>=strtime and getdate()<=endtime
------解决方案--------------------
可以的.
datetime型数据的比较是ms级的,当然,因为计算机中二进制表示数的问题,其实只能精确到 3.33ms,smalldatetime可以精确到1分钟.
所以不存在你说的问题. 不知道你说的不行是指什么
------解决方案--------------------
我表中的时间格式如下 类型datetime
strtime:2007-11-1 10:19:31
endtime:2007-11-1 10:50:31

现在已经 13.40了. getdate()的时间值就是 13:40:ss:mss
它不在这个区间,当然取不出来了.

如果你只是按天取, 即,不计时分秒,那么
where 0 between datediff(dd,strtime,getdate()) and datediff(dd,getdate(),endtime)
或者
where datediff(dd,strtime,getdate())=0 and datediff(dd,getdate(),endtime)=0