在MySQL语句中有一种方法来排序记录(通过日期戳)>= NOW() -1所以所有的记录从今天前一天到未来被选中?
当前回答
当搜索字段是时间戳,你想找到从昨天0小时到今天0小时的记录时,使用构造
MY_DATE_TIME_FIELD between makedate(year(now()), date_format(now(),'%j')-1) and makedate(year(now()), date_format(now(),'%j'))
而不是
now() - interval 1 day
其他回答
你差不多到了:现在()-间隔1天
请注意,结果可能与您的预期略有不同。
NOW()返回一个DATETIME。
并且INTERVAL的工作方式与名称相同,例如INTERVAL 1 DAY = 24小时。
因此,如果您的脚本被克隆为在03:00运行,它将错过“最古老”一天的前三个小时记录。
要获得一整天,使用CURDATE() -间隔1天。无论脚本何时运行,这都将返回到前一天的开始。
你当然可以:
SELECT * FROM table
WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY)
根据日期/时间函数的文档判断,你应该能够做如下的事情:
SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY
使用DATE_ADD或DATE_SUB没有看到任何正确的答案:
从现在减去1天()
...WHERE DATE_FIELD >= DATE_SUB(NOW(), INTERVAL 1 DAY)
从现在开始增加1天()
...WHERE DATE_FIELD >= DATE_ADD(NOW(), INTERVAL 1 DAY)
推荐文章
- 如何停止mysqld
- 检查MySQL表是否存在而不使用“select from”语法?
- 从NOW() -1天选择记录
- 从表中选择1是什么意思?
- 数据库性能调优有哪些资源?
- 如何更改表的默认排序规则?
- MySQL foreign_key_checks是否影响整个数据库?
- 设置NOW()为datetime数据类型的默认值?
- 在MySQL中Datetime等于或大于今天
- 删除MySQL中的主键
- 我如何在MySQL中添加更多的成员到我的enum类型列?
- 相当于varchar(max)在MySQL?
- PHP与MySQL 8.0+错误:服务器请求身份验证方法未知的客户端
- laravel5“LIKE”对等物(雄辩的)
- PHP PDO:字符集,集名称?