栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从SQL的时间戳中,选择今天,昨天,本周,本月以及两个日期之间的记录php mysql

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从SQL的时间戳中,选择今天,昨天,本周,本月以及两个日期之间的记录php mysql

如果仅按日期选择,则将计算基于

CURDATE
(仅返回日期)而不是
NOW
(返回日期和时间)。这些示例将捕获日期范围内的所有时间:

  • 今天:
    WHERe timestamp >= CURDATE()
  • 昨天:
    WHERe timestamp >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND timestamp < CURDATE()
  • 这个月:
    WHERe timestamp >= DATE_SUB(CURDATE(), INTERVAL DAYOFMonTH(CURDATE())-1 DAY)
  • 在2013年6月3日至2013年6月7日这两个日期之间(请注意如何将结束日期指定为6月8日,而不是6月7日):
    WHERe timestamp >= '2013-06-03' AND timestamp < '2013-06-08'

“本周”取决于您开始一周的哪一天;我留给你。您可以使用该

DAYOFWEEK
功能调整
CURDATE()
到适当的范围。


附录
:OP的列类型为

INTEGER
,存储UNIX时间戳,而我的回答假定列类型为
TIMESTAMP
。这是使用UNIX时间戳记值执行所有相同操作并在索引建立索引后仍然保持优化的方法(就像上面的答案在
TIMESTAMP
索引建立索引时一样)…

基本上,解决方案是将开始日期和/或结束日期包装在

UNIX_TIMESTAMP
函数中:

  • 今天:
    WHERe timestamp >= UNIX_TIMESTAMP(CURDATE())
  • 昨天:
    WHERe timestamp >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY)) AND timestamp < UNIX_TIMESTAMP(CURDATE())
  • 这个月:
    WHERe timestamp >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL DAYOFMonTH(CURDATE())-1 DAY))
  • 在2013年6月3日至2013年6月7日这两个日期之间(请注意如何将结束日期指定为6月8日,而不是6月7日):
    WHERe timestamp >= UNIX_TIMESTAMP('2013-06-03') AND timestamp < UNIX_TIMESTAMP('2013-06-08')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号