我正在使用 mysql 中的 week() 函数来确定日期的周数。我面临的问题是它总是比实际周数少一个数字。假设今天是 2013-05-15,因为它是今年的第 20 周,但结果是 19。以下是我正在使用的查询。
SELECT *,WEEK(date_visit) AS week_no FROM property_view_details;
我正在使用 mysql 中的 week() 函数来确定日期的周数。我面临的问题是它总是比实际周数少一个数字。假设今天是 2013-05-15,因为它是今年的第 20 周,但结果是 19。以下是我正在使用的查询。
SELECT *,WEEK(date_visit) AS week_no FROM property_view_details;
直接来自文档:
mysql> SELECT WEEK('2008-02-20',1);
-> 8
WEEK
您可以通过将第二个参数分别设置为 0-indexed0
或1
1-indexed 结果来更改 的行为。
将第二个week
参数设置为正确的值。
引用文档: https ://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week
M F.day Range Week 1 is the first week …
0 Sunday 0-53 with a Sunday in this year
1 Monday 0-53 with more than 3 days this year
2 Sunday 1-53 with a Sunday in this year
3 Monday 1-53 with more than 3 days this year
4 Sunday 0-53 with more than 3 days this year
5 Monday 0-53 with a Monday in this year
6 Sunday 1-53 with more than 3 days this year
7 Monday 1-53 with a Monday in this year
M = Mode
F.day = First day of week
样本:
mysql> SELECT WEEK('2008-02-20',0);
-> 7
mysql> SELECT WEEK('2008-02-20',1);
-> 8
手册应该对此有所说明。
default_week_format
可能设置为默认值0
,这意味着周从零开始计数。尝试将其更改为1
,或仅调整查询以说明更改。
只用一个简单的谷歌研究函数的操作就发现了这个:http ://www.w3resource.com/mysql/date-and-time-functions/mysql-week-function.php
简而言之,您可以为该功能分配一种操作模式。也就是说,一周从哪一天开始,应该从 0 还是 1 开始。
例如,SELECT WEEK(date_visit, 2)
将从星期日开始计算周数,并从 1 开始计算。
祝你好运。