SQL Query无法正确查询。不确定是什么问题

时间:2016-02-15 07:02:08

标签: mysql sql

基本的东西,我有一个简单的SQL查询我正在尝试运行,但它不起作用。我发现的问题是:

hour(NOW()) >= start_hour

原始代码是这样的:

SELECT * FROM shows WHERE hour(NOW()) >= start_hour 
AND hour(NOW()) < end_hour AND WEEKDAY(NOW()) = day

一些示例数据

  

ID --- NAME -------- SHOW -------------- IMAGE-- DAY-Start_time -   END_TIME

     

1 - Shea Lavington - 早间秀! - Chris.png - 0 - 06:00:00 - 10:00:00

ID  int
presenter   text
show    text
image   text
day decimal
start_hour  time
end_hour    time

2 个答案:

答案 0 :(得分:1)

  

问题不是白天。问题是start_hour。但我不确定为什么,但是天是数字,开始/结束时间是“时间”

简单!这意味着您要将606:00:00进行比较。只需将HOUR应用于两侧而不仅仅是一侧,因此您可以在两侧获得一个数字进行比较。

hour(NOW()) >= HOUR(start_hour) 

喜欢这个

SELECT * FROM shows 
WHERE WEEKDAY(NOW()) = day
AND HOUR(NOW()) BETWEEN HOUR(start_hour) AND HOUR(end_hour)

也可以摆脱所有这些HOUR的东西

SELECT * FROM shows 
WHERE WEEKDAY(NOW()) = day
AND NOW() BETWEEN start_hour AND end_hour

答案 1 :(得分:0)

你需要的不是Now()for hour尝试CURTIME()for hour()和CURDATE()for weekday()所以这样做:

SELECT * 
FROM shows 
WHERE hour(CURTIME()) >= hour(start_hour) 
  AND hour(CURTIME()) < hour(end_hour)
  AND WEEKDAY(CURDATE()) = day