在SQL Server 2008中比较时间
这是我的表。我需要一个查询,它返回指定时间的班次ID
如何获取值?在SQL Server 2008中比较时间
shift_ID shift_From shift_To
1 2010-09-21 10:00:00.000 2010-09-21 18:10:00.000
2 2010-09-21 20:00:00.000 2010-09-21 05:00:00.000
假设我给02:00:00作为输入,我需要得到转变ID作为1。我怎么能这样做?
尝试:
SELECT shift_ID
FROM time_shift
WHERE
DATEDIFF(hour, shift_From, shift_To) = 2 -- your input
查看更多有关DATEDIFF on MSDN
第一个参数是你指定到DATETIFF(小时,分,秒)的时间部分。
如果您的输入与02:00:00
严格相同,您需要解析它以确定指定为第一个参数的内容。
要确定做2种人之间的指定日期归属,用途:
SELECT shift_ID
FROM time_shift
WHERE
CAST(shift_From AS TIME) < CAST(@input AS TIME)
AND
CAST(@input AS TIME) < CAST(shift_To AS TIME)
-- you can specify operators inclusiveness, i.e. <= >= etc
-- or
CAST(@input AS TIME) BETWEEN (CAST(shift_From AS TIME), CAST(shift_To AS TIME))
查看你想要的所有的同时,更多的TIME on MSDN
在不同的日期我需要检查输入时间是否在换班和换班之间。 DateDiff将返回转换的持续时间 – kbvishnu 2010-10-23 10:43:15
@Hari:查看我更新的帖子 – abatishchev 2010-10-23 10:55:47
@abatishchev在这里,我想比较没有考虑date.Your查询没有返回任何东西:( – kbvishnu 2010-10-23 11:18:52
有可能转变他们? – anivas 2010-10-23 09:18:16
@anivsa这里提到的日期并不重要。该表中只有两个条目。 – kbvishnu 2010-10-23 09:29:15