嗨,我是一个初学者,我正在尝试使用下面的查询获取长文本的日期名称,但我得到 null d1 列是长文本。
d1 = day/mm/yyyy
ex d1 = 01/11/2018
由于 11 月 1 日是星期四,因此期望输出为星期四。我非常感谢任何建议或帮助,谢谢
SELECT DAYNAME(d1) FROM tbl1
最佳答案
将日期转换为数据库可识别的格式:
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
。
=====
根据 Nick 建议的格式,您可以消除使用 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 |
+----------------------------------------------------------+
关于mysql - 获取长文本mysql的日期名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54432640/