gpt4 book ai didi

mysql - 为什么 default_week_format 变量适用于 WEEK 但不适用于 YEARWEEK

转载 作者:行者123 更新时间:2023-11-29 00:36:07 26 4
gpt4 key购买 nike

我之前发布了一个问题,该问题得到了正确回答,导致我发现我的 YEARWEEK() 函数使用默认模式零,并给出了我不想要的结果。我阅读了 YEARWEEK 的手册,其中提到了关于模式的 WEEK,它说,如果没有使用模式参数,则使用 default_week_format 值。我决定我想要模式 6,所以我采取了必要的步骤将变量更改为 6。但是,只有 WEEK() 函数受此更改的影响。

我得到以下结果:

SELECT YEARWEEK(NOW())
201301
SELECT YEARWEEK(NOW(), 6)
201302
SELECT WEEK(NOW())
2
SELECT WEEK(NOW(), 6)
2

这是 MySQL 的问题还是我做错了什么?我读了几次手册,它在 YEARWEEK 描述中明确指出,“mode 参数的工作方式与 WEEK() 的 mode 参数完全一样”。但是,它没有具体说明(正如在 WEEK 描述中所做的那样),“如果省略模式参数,则使用 default_week_format 系统变量的值”。

如果没有提供 YEARWEEK() 是否应该使用变量的值,或者我在这方面是错误的?在我看来,这两个函数的行为应该相同,尤其是因为一个函数在其描述的这个特定部分引用了另一个函数。

最佳答案

Shouldn't YEARWEEK() use the variable's value if none is provided or am I wrong in that regard?

没有。

虽然我理解这个论点,但这是有记录的,因此是预期的行为。来自 default_week_format 上的文档:

The default mode value to use for the WEEK() function.

所以这个系统变量用于WEEK()。但是,正如您所指出的,这两个函数都允许将 week_format 作为第二个参数。因此,我鼓励您不要在服务器级别设置它,而是在您的代码中为清楚起见。

关于mysql - 为什么 default_week_format 变量适用于 WEEK 但不适用于 YEARWEEK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14238959/

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