2013-02-13 2 views
0

나는 어떤 경우에 나를 위해 작동하지 않는 질의를 가지고 있는데, 왜냐하면 끝 시간이 시작보다 적을 때가 오기 때문에 시간이 끝나기 때문이라고 생각한다. 시각. 다음은 쿼리입니다.MySQL의 시간이 지난 과거의 끝

SELECT reminder_cfg.id, default_time, day_prior, timezone 
FROM reminder_cfg, uc_users 
WHERE reminder_cfg.id = 5 
AND reminder_cfg.id = uc_users.id 
AND default_time BETWEEN TIME(NOW() + INTERVAL 5 HOUR) AND TIME(NOW() + INTERVAL 10 HOUR) 

이것은 실제로 며칠 동안 발길질이되었습니다.

이것은 더 좋은 방법이있을 것이라고 확신하는 Perl 스크립트의 일부입니다. 그러나 나는 혼란 스럽습니다.

+0

'default_time'의 데이터 유형은 무엇입니까? 'TIME' 또는'DATETIME'입니까? –

답변

0

DATE_ADD을 사용하여 두 날짜를 추가하십시오.

SELECT reminder_cfg.id, default_time, day_prior, timezone 
FROM reminder_cfg, uc_users 
WHERE reminder_cfg.id = 5 
AND reminder_cfg.id = uc_users.id 
AND default_time BETWEEN TIME(DATE_ADD(NOW(), INTERVAL 5 HOUR)) AND TIME(DATE_ADD(NOW() + INTERVAL 10 HOUR)) 
관련 문제