在MySql中,如果给定日期时间,如何查找星期几?

在MySql中,如果给定日期时间,如何查找星期几?,sql,mysql,algorithm,Sql,Mysql,Algorithm,给定MySQL5中的datetime列,我想知道一周中的哪一天 但是函数DAYOFWEEK对于星期天返回1 我想1表示星期一,2表示星期二等。。7表示星期天 是否有一个单行程序(可以嵌入到更大的SQL语句中)来实现此函数 f(x) => y such that: f(1) = 7 f(n) = n-1 for n in range [2,7] 你可以试试 当n=1时,则7个其他n-1结束您可以尝试 当n=1时,则7个其他n-1结束A纯算术公式为 SELECT ((DAYOF

给定MySQL5中的datetime列,我想知道一周中的哪一天

但是函数DAYOFWEEK对于星期天返回1

我想1表示星期一,2表示星期二等。。7表示星期天

是否有一个单行程序(可以嵌入到更大的SQL语句中)来实现此函数

f(x) => y

such that:
   f(1) = 7
   f(n) = n-1 for n in range [2,7]
你可以试试 当n=1时,则7个其他n-1结束

您可以尝试
当n=1时,则7个其他n-1结束

A纯算术公式

SELECT ((DAYOFWEEK(myDate) + 5) % 7) + 1 AS MondayBasedDOW
尽管在SQL中,我们经常使用CASE语句解决这个问题(参见astender的答案)

现在。。。MySQL还提供了函数WEEKDAY(),该函数类似于DAYOFWEEK(),但是

  • 星期一的
  • 零基
i、 星期一=0,星期二=1。。。星期日=6
因此,您可以简单地使用

SELECT WEEKDAY(myDate) + 1 AS MondayBasedDOW

当然,这比使用模运算有趣得多;-)

A纯算术公式

SELECT ((DAYOFWEEK(myDate) + 5) % 7) + 1 AS MondayBasedDOW
尽管在SQL中,我们经常使用CASE语句解决这个问题(参见astender的答案)

现在。。。MySQL还提供了函数WEEKDAY(),该函数类似于DAYOFWEEK(),但是

  • 星期一的
  • 零基
i、 星期一=0,星期二=1。。。星期日=6
因此,您可以简单地使用

SELECT WEEKDAY(myDate) + 1 AS MondayBasedDOW
当然,这比使用模运算有趣得多;-)