日期:2014-05-19  浏览次数:20596 次

以时间为条件的查询
数据库中有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

具体时间可以是字段,分离后的日期(小时,分钟)可以是你要的参数值!