获取长文本mysql的日名称

时间:2019-01-30 02:39:26

标签: mysql sql

嗨,我是一个初学者,我正在尝试使用下面的查询来获取长文本的当天的名称,但是我得到的空d1列为长文本。

d1 = day/mm/yyyy
ex d1 = 01/11/2018

自11月1日(星期四)以来,所需输出为星期四。非常感谢您的任何建议或帮助

SELECT  DAYNAME(d1) FROM tbl1

1 个答案:

答案 0 :(得分:1)

将日期转换为数据库可以识别的格式:

MariaDB [(none)]> select DAYNAME('2018-01-11');
+-----------------------+
| DAYNAME('2018-01-11') |
+-----------------------+
| Thursday              |
+-----------------------+

从您的长文本中,您甚至可以这样做:

MariaDB [(none)]> select DAYNAME(DATE_FORMAT(STR_TO_DATE('01/11/2018', '%d/%m/%Y'), '%Y-%m-%d'));
+-------------------------------------------------------------------------+
| DAYNAME(DATE_FORMAT(STR_TO_DATE('01/11/2018', '%d/%m/%Y'), '%Y-%m-%d')) |
+-------------------------------------------------------------------------+
| Thursday                                                                |
+-------------------------------------------------------------------------+

用d1列替换斜杠日期部分:

select DAYNAME(DATE_FORMAT(STR_TO_DATE(d1, '%d/%m/%Y'), '%Y-%m-%d'));

...也应该工作,假设该列为d1

=====

根据尼克建议的格式,您可以取消使用DAYNAME

MariaDB [(none)]> select DATE_FORMAT(STR_TO_DATE('01/11/2018', '%d/%m/%Y'), '%W');
+----------------------------------------------------------+
| DATE_FORMAT(STR_TO_DATE('01/11/2018', '%d/%m/%Y'), '%W') |
+----------------------------------------------------------+
| Thursday                                                 |
+----------------------------------------------------------+