mysql - 获取长文本mysql的日期名称

标签 mysql sql

嗨,我是一个初学者,我正在尝试使用下面的查询获取长文本的日期名称,但我得到 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/

相关文章:

mysql - SQL Select 基于列的位置。是否可以?

mysql - 此更改如何影响此数据库查询的速度?

php - mysql php从多个表中获取数据

sql - 如何在 STUFF 函数(XML 路径)中包含字符串文本?

sql - 如何获取 SQL Server 上受 BULK INSERT 影响的行数?

php - laravel - 如何连接 URL 并以 json 格式从数据库检索图像

php - Symfony - 只返回一个参数

sqlite - 将数据插入 blob

mysql - 在一个查询中按特定字段选择所有可用组合

sql - 插入和返回新记录或现有记录的 ID,在 Postgres 12.5 中需要更好的策略