请教SQL如何选择一个字段里某一部分的方法

时间:2022-01-20 14:44:20
我的数据库有一个字段是日期与时间合在一起的,如 
2005-08-28 15:00
2005-08-28 16:00
   .......
2005-08-29 15:00    如何用SELECT 语句将所有某个时段的,如15:00的选出来呢.请教了

5 个解决方案

#1



select * from tbl where myField between t1 and t2;

#2


用datepart()函数,具体的可以查帮助。。。
例子:
select * from #t1 where datepart(hh,time)=15
(hh:取出时间的小时部分,time:datetime 型字段)

#3


hisnow_zh(禺人)  你说的函数帮助是看SQL的帮助?

#4


如下,求 18:8分创建的记录(求 时间点 )
Select * from table where cast(datepart(hh,创建时间) as varchar)+':'+cast(datepart(mi,创建时间) as varchar)= '18:8'

--因为datepart 返回的是整数型,所以,不能写成 '18:08'


如果要求时间段
Select * from table where (datepart(hh,创建时间) = 15)  and (datepart(mi,创建时间) between '0' and '10')
--这时间间与 15:00 到 15:10 之间创建的
--这条语句的缺点是 小时部分不能跨越2个以上不同时间
--如果你写成
Select * from table where (datepart(hh,创建时间) between '15' and '19')  and (datepart(mi,创建时间) between '0' and '10')

这个将返回4个时间段(15:00 到 15:10 、16:00 到 16:10、 17:00 到 17:10、 18:00 到 18:10 )

时间到了要下班,以上可以作个参考,写的比较粗糙


#5


可以的字段改为字符串型,直接用like查询就可以了

#1



select * from tbl where myField between t1 and t2;

#2


用datepart()函数,具体的可以查帮助。。。
例子:
select * from #t1 where datepart(hh,time)=15
(hh:取出时间的小时部分,time:datetime 型字段)

#3


hisnow_zh(禺人)  你说的函数帮助是看SQL的帮助?

#4


如下,求 18:8分创建的记录(求 时间点 )
Select * from table where cast(datepart(hh,创建时间) as varchar)+':'+cast(datepart(mi,创建时间) as varchar)= '18:8'

--因为datepart 返回的是整数型,所以,不能写成 '18:08'


如果要求时间段
Select * from table where (datepart(hh,创建时间) = 15)  and (datepart(mi,创建时间) between '0' and '10')
--这时间间与 15:00 到 15:10 之间创建的
--这条语句的缺点是 小时部分不能跨越2个以上不同时间
--如果你写成
Select * from table where (datepart(hh,创建时间) between '15' and '19')  and (datepart(mi,创建时间) between '0' and '10')

这个将返回4个时间段(15:00 到 15:10 、16:00 到 16:10、 17:00 到 17:10、 18:00 到 18:10 )

时间到了要下班,以上可以作个参考,写的比较粗糙


#5


可以的字段改为字符串型,直接用like查询就可以了