以下是我的查询已运行但未给出完美答案
SELECT `event`.*
FROM `events` AS `event`
WHERE (DATE_FORMAT(event.event_start,'%m-%d-%Y') >=
DATE_FORMAT('2011-03-15','%m-%d-%Y') ORDER BY `event_start` desc ";
我认为'>'不适用于日期格式列。
答案 0 :(得分:1)
DATE_FORMAT命令创建表示日期的字符串。因此,您要比较表示日期的字符串,而不是日期本身。
SELECT `event`.*
FROM `events` AS `event`
WHERE event.event_start >= '2011-03-15'
ORDER BY `event_start` desc ";
如果您绝对必须使用DATE_FORMAT命令(也许event_start不是日期列?),那么请确保您与年,月,日,而不是月,日,年进行比较。
SELECT `event`.*
FROM `events` AS `event`
WHERE (DATE_FORMAT(event.event_start,'%y-%m-%d') >=
DATE_FORMAT('2011-03-15','%y-%m-%d') ORDER BY `event_start` desc ";
答案 1 :(得分:1)
您可以使用TIMESTAMPDIFF函数:
SELECT `event`.*
FROM `events` AS `event`
WHERE TIMESTAMPDIFF(DAY, '2011-03-15', event.event_start) > 0
ORDER BY 'event_start' desc";
这应该会为您提供2011-03-16中event_start的所有活动。 这里描述:mysql reference