我要检查当前时间给予两次与否之间,使用MySQL查询像下面,如何检查时间comparsion在MySQL
id start_time end_time
1 08:00 PM 08:00 AM
select *,if((serverTime >= startTime and serverTime <= endTime),'MetTheTime','DintMetTheTime') as Status from(select STR_TO_DATE(concat(SUBSTRING_INDEX(start_time, ' ', 1),':00 ',SUBSTRING_INDEX(start_time, ' ', -1)),'%l:%i:%S %p') as startTime,STR_TO_DATE(concat(SUBSTRING_INDEX(end_time, ' ', 1),':00 ',SUBSTRING_INDEX(end_time, ' ', -1)),'%l:%i:%S %p') as endTime,time(now()) as serverTime from(select start_time,end_time from table where id=1) a) b;
当我执行查询的输出是:
startTime endTime serverTime Status
20:00:00 08:00:00 03:47:57 DintMetTheTime
但预期输出是:
startTime endTime serverTime Status
20:00:00 08:00:00 03:47:57 MetTheTime
我在哪里做错了吗?
根据回复帖子。我打入Time
select *,if((serverTime >= startTime and serverTime <= endTime),'MetTheTime','DintMetTheTime') as Status from(select start_time as startTime, end_time as endTime,time(now()) as serverTime from(select start_time,end_time from table where id=1) a) b;
但仍然这种情况不起作用?
确保你的字段类型是'表中的 –
time'但我不应该保持字段类型是时间。它必须是String。 – MMMMS
尝试在查询中使用'STR_TO_DATE(startTime,“%h:%i:%s”)'而不是'startTime',然后与其他人进行比较,然后比较时间 –