Mysql WEEKDAY() vs Mysql DayofWeek()

Ace*_*.py 7 mysql function

我试图理解两者,但我真的很困惑。网上说:

MySQL WEEKDAY()返回给定日期的一周中一天的索引(0 表示星期一,1 表示星期二,......6 表示星期日)。MySQL DAYOFWEEK()返回指定为参数的日期的星期数(星期日为 1,星期一为 2……星期六为 7)。

任何人都可以用一个例子来解释两者吗?谢谢你。

JCH*_*H77 7

WEEKDAY()返回从 0 到 6 的索引,表示周一到周日
DAYOFWEEK()返回从 1 到 7 的索引,表示周日到周六
因此,同一天有不同的索引,例如。周日可以是 1 点或 6 点

通常我更喜欢使用,因为像ELT()DAYOFWEEK()这样的 SQL 函数是基于 1 索引的:

SELECT ELT(DAYOFWEEK(NOW()), 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
SELECT ELT(WEEKDAY(NOW()) + 1, 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
Run Code Online (Sandbox Code Playgroud)


use*_*274 5

一个相关的区别是,工作日从星期一开始计算一周中的天数,如下并从 0 开始

0=周一,1=周二,2=周三,3=周四,4=周五,5=周六,6=周日

另一方面,dayofweek 从星期日开始计算一周中的天数,并从 1 开始

1=周日,2=周一,3=周二,4=周三,5=周四,6=周五,7=周六

请尝试

选择工作日(现在())工作日,星期日(现在())星期日;