我有一个快速和尽快的问题。在两者之间进行选择不适用于MySQL?
SELECT `deals`.*
FROM `deals`
WHERE
`is_featured` = 1 AND
`status` = 'active' AND
CURDATE() BETWEEN start_date AND DATE_ADD(end_date, INTERVAL 1 DAY)
ORDER BY `end_date` DESC
LIMIT 1
这是正确的吗?
start_date
是“2012-01-11 00:00:00”而end_date
是“2012-01-11 23:59:59”。
这就是我想要显示:
我想说明的dealoffer,它是当前日期时间之间,如果is_featured
为1和status
是“积极的”。
(CURDATE()
给我只日期,而不是时间,这是什么问题?我怎样才能在MySql中获取当前的日期时间?)。
它应该只选择一项交易,并且该交易应该是距离当前日期时间最近的结束日期。
是否有未来日期的交易?如果没有,也许你可以找到最大日期的那个呢?或者如果有未来的日期,你可以寻找比当前日期更短的最大日期吗? – DOK 2012-01-10 23:39:20
这应该工作。你会得到什么错误?顺便说一句,NOW()会为你返回一个当前的日期时间。 – 2012-01-10 23:40:03
什么数据类型是start_date和end_date? – 2012-01-10 23:41:10