我在SQL Server中有一个表,它存储Start_Time(Time(7))和End_Time(Time(7))。
存储在其中的值是
Start_Time End_Time
15:00:00.0000000 01:00:00.0000000
我有一个应该返回此行的查询:
Select * from Table Where MyTime >= Start_Time and MyTime <
End_Time
对于MyTime值= 16:00:00,这应返回一行。但由于End_Time是在午夜之后,因此它不会返回任何行。我不能使用Date + Time列,因为我将此Start_Time和End_Time表用作通用表,我与另一个表连接以获取我的数据。
有人可以在不改变列类型的情况下为此建议解决方法。
感谢。
答案 0 :(得分:3)
您需要在WHERE
子句中包含此选项:
Select *
from Table
Where (Start_Time > End_time AND myTime >= start_time) -- Answer your case
OR MyTime between start_time and end_time -- All the rest
答案 1 :(得分:1)
您可以比较开始和结束时间,然后在比较逻辑中使用它:
SUMMED = foreach GRP {
amount = SUM(DATA_TRANSFORMATION.PURCHASE_AMOUNT);
cnt = COUNT(DATA_TRANSFORMATION.ID);
generate group, Purchase_Average,Freq_Visits;
}