求一SQL语句????????????????????????????????????????
在SQL Server中有一表,表中有一个时间字段,字段类型是:datetime,这个字段存的是日期+时间的格式(如:2006-07-02 20:20:20),我现在想统计出在某个时间段(不包括日期,如:12:00:00至13:00:00)中记录的个数。如:表:
ID 时间
1 2006-06-01 12:01:00
2 2006-06-08 12:38:00
3 2006-06-16 14:00:00
4 2006-06-28 15:00:00
我想统计出在时间段:12:00:00至13:00:00的纪录个数
答案:2个
这个SQL语句怎么写?谢谢
问题点数:20、回复次数:8Top
1 楼singlepine(小山)回复于 2006-07-02 20:38:26 得分 0
select count(*) from userinfo where DATEPART(hour, birthday) between 12 and 13Top
2 楼rl0516()回复于 2006-07-02 20:50:12 得分 0
如果时间段包含小时、分钟、秒钟呢?如:12:01:24至13:23:35Top
3 楼NetFog(秋思)回复于 2006-07-02 20:58:20 得分 1
DatePart(interval, date[, firstdayofweek[, firstweekofyear]])
把interval换成s
select count(*) from userinfo where DATEPART(s, birthday) between 12 and 13
Top
4 楼NetFog(秋思)回复于 2006-07-02 20:59:12 得分 0
http://www.ymw.cn/it/VBScript/vbsdocs/95.htm
搜索了下 DATEPART 就有结果了.呵呵.Top
5 楼format_leon()回复于 2006-07-02 21:11:11 得分 1
不同意小山兄的意见,请别见怪 只是说说自己看法而已
我认为应该是
select ID TIME from tab_user where RIGHT(TIME, 6)=12
TIME 旁边是不是取6位合适
得看楼主的TIME字段怎么设置的
试试吧
Top
6 楼singlepine(小山)回复于 2006-07-02 21:13:56 得分 18
declare @start varchar(8)
declare @end varchar(8)
set @start='12:01:24'
set @end='13:23:35'
select count(*) from userinfo where convert(char(10),birthday,108) between @start and @end
Top
7 楼rl0516()回复于 2006-07-02 21:26:21 得分 0
谢谢.
singlepine(小山) ( ) 信誉:341
接分Top
8 楼angll_diao(金色)回复于 2006-07-03 15:55:56 得分 0
markTop




