以时间为条件的查询
数据库中有datetime类型的字段,显示形式为:1900-01-01 20:30:10,现在要以时(vHour)和分(vMinu)而忽略秒为条件来查询,请问该怎么做?
------解决方案----------------------按小时
SELECT DATEPART ( Hour, '1900-01-01 20:30:10 ')
--按分钟
SELECT DATEPART ( MINUTE, '1900-01-01 20:30:10 ')
------解决方案----------------------试试
declare @d datetime,@begin_time datetime,@end_time datetime
select @d = '20070101 09:42:11 ',@begin_time = '20060606 08:14:10 '
,@end_time = '20080202 10:10:01 '
select convert(varchar(5),@d,108)
where convert(varchar(5),@d,108)
between convert(varchar(5),@begin_time,108)
and convert(varchar(5),@end_time,108)
/*
-----
09:42
(所影响的行数为 1 行)
*/
------解决方案--------------------返回代表指定日期的指定日期部分的整数
DATEPART ( datepart , date )
比如:
SELECT DATEPART(Hour, GETDATE()) AS 'Hour Number ' --取得小时值
SELECT DATEPART(minute, GETDATE()) AS 'minute Number ' --取得分钟值
------解决方案--------------------按小时和分,如楼上的,把你的条件分为2个算就可以了
------解决方案--------------------数据库中有datetime类型的字段,显示形式为:1900-01-01 20:30:10,现在要以时(vHour)和分(vMinu)而忽略秒为条件来查询,请问该怎么做?
select * from tb where substring(convert(varchar(19),时间字段,120),12,5) = '小时:分钟 '
select * from tb where substring(convert(varchar(19),时间字段,120),12,5) = '10:00 '
------解决方案--------------------select * from table where DATEPART(hh, '1900-01-01 20:30:10 ') = 20 and DATEPART ( mi, '1900-01-01 20:30:10 ') = 30
------解决方案--------------------返回代表指定日期的指定日期部分的整数
DATEPART ( datepart , date )
select * from table_name where DATEPART(hh, '1900-01-01 20:30:10 ') = 20 and DATEPART ( mi, '1900-01-01 20:30:10 ') = 30
具体时间可以是字段,分离后的日期(小时,分钟)可以是你要的参数值!