从MariaDB中的日期获取日期名称的3种方法

发布于

以下是可用于从 MariaDB 中的日期获取日期名称的三种方法。

其中两种方法返回完整的日期名称,一种返回短日名称。

函数DAYNAME()

该函数专门设计用于从日期返回日期名称。只需在调用函数时传递日期,它就会返回完整的日期名称。DAYNAME()

例:

SELECT DAYNAME('2021-08-19');

输出:

+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday              |
+-----------------------+

用于日期名称的语言由系统变量的值控制。有关这如何影响输出的示例,请参阅。lc_time_namesDAYNAME()

函数DATE_FORMAT()

该函数将给定日期格式化为指定格式。您可以在调用函数时指定日期和格式。DATE_FORMAT()

您可以通过传递格式字符串来返回完整的工作日名称。%W

例:

SELECT DATE_FORMAT('2021-08-19', '%W');

输出:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday                        |
+---------------------------------+

与日期名称一样,用于日期名称的语言由系统变量的值控制。但是,该函数接受可选的第三个参数,该参数允许您指定区域设置。DAYNAME()``lc_time_names``DATE_FORMAT()

下面是指定区域设置的示例:

SELECT DATE_FORMAT('2021-08-19', '%W', 'ca_ES');

输出:

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous                                   |
+------------------------------------------+

简称日期名称

传递给函数返回简短的工作日名称。%a``DATE_FORMAT()

例:

SELECT DATE_FORMAT('2021-08-19', '%a');

输出:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu                             |
+---------------------------------+

这可以通过函数复制,方法是使用从工作日名称中获取前 3 个字符。DAYNAME()LEFT()

例:

SELECT LEFT(DAYNAME('2021-08-19'), 3);

输出:

+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu                            |
+--------------------------------+

通过使用类似将结果转换为具有三个字符的数据类型的函数,也可以实现相同的效果。CAST()

但是,尽管此方法适用于其他语言,但它可能并不总是适用于其他语言。例如:en_US

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2021-08-19', '%a') AS "Short 1",
    LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
    DAYNAME('2021-08-19') AS "Full";

输出:

+---------+-----------+--------------------------+
| Short 1 | Short 2   | Full                     |
+---------+-----------+--------------------------+
| พฤ.     | พฤห       | พฤหัสบดี                   |
+---------+-----------+--------------------------+