gpt4 book ai didi

MySQL DATE_FORMAT 第一周不正确

转载 作者:行者123 更新时间:2023-11-29 19:43:34 26 4
gpt4 key购买 nike

2015 年有 53 周。如果您现在的一周从星期一开始,则为 2016 年 1 月 1 日、2 日和 3 日,也在第 53 周。2016 年 1 月 4 日是第 1 周。

在 MySQL 中,它输出如下。但如何避免呢?

SELECT DATE_FORMAT('2015-12-31', 'week %u') //week 53 
SELECT DATE_FORMAT('2016-01-01', 'week %u') //week 00
SELECT DATE_FORMAT('2016-01-02', 'week %u') //week 00
SELECT DATE_FORMAT('2016-01-03', 'week %u') //week 00
SELECT DATE_FORMAT('2016-01-04', 'week %u') //week 01

我使用 PHP 7.0.9 和 10.1.16-MariaDB

最佳答案

嗯,根据周的分配规则,第 0 周并不存在。一种方法是使用长度 case 语句:

SELECT (CASE WHEN DATE_FORMAT('2016-01-01', 'week %u') = 'week 00' then 'week 53'
ELSE DATE_FORMAT('2016-01-01', 'week %u')
END)
. . .

或者,像这样的嵌套函数:

SELECT COALESCE(NULLIF(DATE_FORMAT('2016-01-01', 'week %u'), 'week 00'), 'week 53')

关于MySQL DATE_FORMAT 第一周不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205409/

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