所以我有一个非常强烈的现有Mysql查询,如下所示:
SELECT CURRENT.*, PROGRAMS.NAME
FROM CURRENT
LEFT JOIN PROGRAMS ON CURRENT.PID = PROGRAMS.ID
ORDER BY PID ASC
现在,我想使用此查询来执行其他操作,因为我已经访问了我的数据库。我有一个名为“TIMEWINDOWS”的第三个表,我将如何使用此查询返回一组tinyint(0或1),具体取决于它是否在Start_Time和End_Time之间以及我查询中已有的所有其他内容?
非常感谢你的帮助。
TimeWindows表包含以下内容:
ID int(11) PK
PID int(11) <-- Can join on this from any of the other tables.
ALL_DAY tinyint(1)
START_DATE date
END_DATE date
EARLIEST time
LATEST time
NOTICE int(11)
LATEST time
MAX int(11)
MIN int(11)
PROBABLE_START time
PROBABLE_END time
我想检查它是否在start&amp;结束日期,并返回一个bool,如果它,但我似乎无法找到一种方法这样做,任何人都可以帮助吗?
答案 0 :(得分:1)
SELECT CURRENT.*, PROGRAMS.NAME,
CASE WHEN t.ID IS NULL THEN 0 ELSE 1 END AS BetweenStartEnd
FROM CURRENT
LEFT JOIN PROGRAMS ON CURRENT.PID = PROGRAMS.ID
LEFT JOIN TIMEWINDOWS t ON (t.PID = CURRENT.PID
AND DATE_FORMAT(NOW(), '%Y-%m-%d') > START_DATE
AND DATE_FORMAT(NOW(), '%Y-%m-%d') < END_DATE
)
ORDER BY PID ASC
答案 1 :(得分:0)
我认为您缺少一些信息可以为您提供代码示例,但请查看此页面,它可能有所帮助:
http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if