這是我的表。我需要一個查詢,它返回指定時間的班次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。我怎麼能這樣做?
這是我的表。我需要一個查詢,它返回指定時間的班次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