这是我的桌子。我需要一个查询,它返回指定时间的班次id 我怎样才能获得价值?
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.我该怎么做?
答案 0 :(得分:3)
尝试:
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