gpt4 book ai didi

php - Mysql基于日期的查询?

转载 作者:行者123 更新时间:2023-11-29 13:34:48 24 4
gpt4 key购买 nike

我有一张这样的 table

id | date | content
1 | 09-16-2013 | content 1 here
2 | 09-23-2013 | content 2 here
3 | 09-30-2013 | content 3 here

我想显示自该日期起一周的内容。例如,第一个内容应于 2013 年 9 月 16 日开始,然后显示到 2013 年 9 月 22 日午夜。然后第二天就变成内容2了。同样,当我在内容 2 上时,我想显示“上周内容”,然后只显示之前的内容。我想我可以通过检查当前日期来做到这一点,然后必须显示下面的任何内容。

我不太擅长这类mysql查询,请指教!

问候

最佳答案

我猜你正在寻找类似的东西

SELECT * 
FROM table1
WHERE date BETWEEN CURDATE() + INTERVAL 0 - WEEKDAY(CURDATE()) DAY
AND CURDATE() + INTERVAL 6 - WEEKDAY(CURDATE()) DAY

此查询将抓取 date 列在当前日历周(从周一到周日)范围内的行。

WEEKDAY()函数返回日期的工作日索引(0 = 星期一,1 = 星期二,... 6 = 星期日)。表达式

CURDATE() + INTERVAL 0 - WEEKDAY(CURDATE()) DAY

返回当前日历周星期一的日期,并且

CURDATE() + INTERVAL 6 - WEEKDAY(CURDATE()) DAY

返回当前日历周的星期日的日期。在 WHERE 子句中使用 BETWEEN 可确保查询仅返回 date 值介于这两个日期(周一到周日)之间的行。

注意:确保您在日期列上有索引。此查询是索引友好的。

今天日期 (09/19/2013) 的示例输出:

+------+------------+----------------+| id   | date       | content        |+------+------------+----------------+|    1 | 2013-09-16 | content 1 here |+------+------------+----------------+

UPDATE: To get records for previous calendar week you just substract 1 week interval from both values in BETWEEN

SELECT * 
FROM table1
WHERE date
BETWEEN CURDATE() + INTERVAL 0 - WEEKDAY(CURDATE()) DAY - INTERVAL 1 WEEK,
AND CURDATE() + INTERVAL 6 - WEEKDAY(CURDATE()) DAY - INTERVAL 1 WEEK

关于php - Mysql基于日期的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18902627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com