我有一个应用程序,如果温度超过限制就发送警报,但我只想在一天中的某些时间发送警报。我正在使用time(7)数据类型来存储这些时间。我需要它足够灵活以跨越午夜,所以我可以有以下时间:
time_on time_off
08:00:00 17:00:00
00:00:00 12:00:00
21:00:00 09:00:00
如何确定CONVERT(time(7),getdate())是否介于这些组合之间?
答案 0 :(得分:1)
您可以将TIME添加到日期时间值。在这里,我们通过Declare @D datetime = convert(date,GetDate())
Declare @YourTable table (time_on time,time_off time)
Insert Into @YourTable values
('08:00:00','17:00:00'),
('00:00:00','12:00:00'),
('21:00:00','09:00:00'),
('00:00:00','12:00:00'), -- Added for illustration
('12:00:00','00:00:00') -- Added for illustration
Declare @D datetime = convert(date,GetDate())
Select *
From @YourTable
Where GetDate() >= @D+convert(datetime,time_on)
and GetDate() <= @D+convert(datetime,time_off)+case when time_off<=time_on then 1 else 0 end
<强>返回强>
time_on time_off
12:00:00.0000000 00:00:00.0000000
我当前的日期时间是2017-04-02 18:33:53.803,不符合任何原始标准,所以我添加了两条记录用于说明
或者,如果您不想申报 @D
Select *
From @YourTable
Where GetDate() >= convert(datetime,convert(date,GetDate()))+convert(datetime,time_on)
and GetDate() <= convert(datetime,convert(date,GetDate()))+convert(datetime,time_off)+case when time_off<=time_on then 1 else 0 end
答案 1 :(得分:1)
你可以这样做:
public static boolean increasingArray(int[][] a) {
for (var i = 0; i < a.length; i++) {
for(int row = 0; row< a.length row > previous)
for(int col= 0; col< a.length col > previous)
return true;
}
这会处理您的表格的问题,这段时间包括午夜。