如何解决MySQL日期查询
|| 我想进行查询,该查询将从具有开始日期+时间小于当前日期的表中选择一个随机行。 这是我到目前为止的内容:$query=\"SELECT * FROM premium
WHERE
DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= start_date
ORDER BY
RAND() LIMIT 1 \";
我想用每行time
列中的值替换30
。
如何为查询中的每一行访问time
值? (在间隔内)
解决方法
SELECT * FROM premium
WHERE start_date < DATE_SUB(CURDATE(),INTERVAL HOUR(start_date) DAY)
ORDER BY RAND() LIMIT 1
或者,如果您的栏名为time
,
SELECT * FROM premium
WHERE start_date < DATE_SUB(CURDATE(),INTERVAL HOUR(`time`) DAY)
ORDER BY RAND() LIMIT 1
别忘了在时间前后加上反引号time7ѭ,因为time
是保留字。
, 基于\'$ query \'标记,我认为您正在用PHP编译此查询?在那种情况下,为什么不只是在php中生成日期标签呢?这样的事情会起作用:
$date_before = date(<format>,time() - (30 × 24× 3600));
使用\'\'作为您希望解析日期的方式(例如\'Y-m-d H:i:s \')。
如果要将其保留在查询本身中,则可以使用NOW()函数并在查询内部进行相同的计算。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。