从MYSQL中的索引号获取工作日名称

Khu*_*hal 3 mysql sql date

我有一个表将0-6作为工作日值存储,我想显示工作日名称.例如,如果值为0,则显示Sunday,如果值为,则显示1,它将Monday同样显示.是否有任何内置的MySQL函数可以从索引中获取日期名称?

提前致谢!!

mbi*_*tte 6

正如@Aliminator所提到的,你可以用DAYNAME一个DATE.

但是,如果您不想更改架构,这里有一个非常好的黑客:

 SELECT DAYNAME(CONCAT("1970-09-2", dayIndex)) FROM your_table;
Run Code Online (Sandbox Code Playgroud)

这是基于1970-09-20是星期日(21星期一,等等)的事实.

  • 你真是个天才!谢谢你! (3认同)
  • 唯一的问题是 MySQL DAYOFWEEK 函数从 1 开始,而不是周日的 0。所以,你总是会做-1的数学运算。由于我是在 2018 年写的,我建议您使用 2018-03-1x,其中 2018-03-11 是星期日。整个语句将是: SELECT DAYNAME(CONCAT('2018-03-1', dayIndex)) from your_table; (2认同)

lev*_*man 5

DAYNAME( date_value )在 MySql 中可用;然而,这需要一个日期,而不是一个整数。因此,如果您有可用的日期,则可以使用DAYNAME(CURDATE()),DAYNAME('2014-01-07')等。

如果您拥有的只是代表工作日的 int,那么 CASE 语句可能是您最好的选择。

CASE WHEN 0 THEN 'Sunday' WHEN 1 THEN 'Monday' ..... ELSE '' END