MySQL DAYNAME Function

摘要:在本教程中,您将学习如何使用 MySQL DAYNAME函数来获取给定日期的工作日名称。

MySQL DAYNAME函数简介

MySQL DAYNAME函数返回指定日期的工作日名称。下面说明了DAYNAME函数的语法:

DAYNAME(date);
Code language: SQL (Structured Query Language) (sql)

DAYNAME函数接受 1 个参数,该参数是您想要获取其工作日名称的日期。

如果dateNULL或无效,例如2017-02-30 ,则DAYNAME函数返回NULL

MySQL DAYNAME函数示例

以下示例返回January 1st, 2000的工作日名称。

mysql> SELECT DAYNAME('2000-01-01') dayname;
+----------+
| dayname  |
+----------+
| Saturday |
+----------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)

默认情况下,MySQL 以lc_time_names系统变量控制的语言返回工作日的名称。

mysql> SELECT @@lc_time_names;
+-----------------+
| @@lc_time_names |
+-----------------+
| en_US           |
+-----------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)

如您所见,当前区域设置设置为en_US

要获取特定区域设置中工作日的日期名称,您需要更改lc_time_names变量的值。例如,以下语句将区域设置设置为法语:

mysql> SET @@lc_time_names = 'fr_FR';
Query OK, 0 rows affected (0.00 sec)
Code language: SQL (Structured Query Language) (sql)

现在,让我们查询January 1st, 2000的工作日名称:

mysql> SELECT DAYNAME('2000-01-01') dayname;
+---------+
| dayname |
+---------+
| samedi  |
+---------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)

如您所见,工作日名称已更改为法语。

下表显示了 MySQL 支持的lc_time_names的有效区域设置:

阿尔巴尼亚语 – 阿尔巴尼亚sq_AL
阿拉伯语 – 阿尔及利亚ar_DZ
阿拉伯语 – 巴林ar_BH
阿拉伯语 – 埃及ar_EG
阿拉伯语 – 印度ar_IN
阿拉伯语 – 伊拉克ar_IQ
阿拉伯语 – 约旦ar_JO
阿拉伯语 – 科威特ar_KW
阿拉伯语 – 黎巴嫩ar_LB
阿拉伯语 – 利比亚ar_LY
阿拉伯语 – 摩洛哥ar_MA
阿拉伯语 – 阿曼ar_OM
阿拉伯语 – 卡塔尔ar_QA
阿拉伯语 – 沙特阿拉伯ar_SA
阿拉伯语 – 苏丹ar_SD
阿拉伯语 – 叙利亚ar_SY
阿拉伯语 – 突尼斯ar_TN
阿拉伯语 – 阿拉伯联合酋长国ar_AE
阿拉伯语 – 也门ar_YE
巴斯克语 – 巴斯克语欧盟ES
白俄罗斯语 – 白俄罗斯是_BY
保加利亚语 – 保加利亚BG_BG
加泰罗尼亚语 – 西班牙ca_ES
中文 – 中国zh_CN
中文 – 香港zh_HK
中文 – 中国台湾省zh_TW
克罗地亚语 – 克罗地亚小时_HR
捷克 – 捷克共和国cs_CZ
丹麦语 – 丹麦达_DK
荷兰语 – 比利时nl_BE
荷兰语 – 荷兰NL_NL
英语 – 澳大利亚en_AU
英语 – 加拿大en_CA
英语 – 印度en_IN
英语 – 新西兰zh_CN
英语 – 菲律宾en_PH
英语 – 南非en_ZA
英语 – 英国en_GB
美国英语zh_CN
英语 – 津巴布韦zh_ZW
爱沙尼亚语 – 爱沙尼亚等_EE
法罗语 – 法罗群岛fo_FO
芬兰语 – 芬兰FI_FI
法语 – 比利时fr_BE
法语 – 加拿大fr_CA
法语 – 法国fr_FR
法语 – 卢森堡fr_LU
法语 – 瑞士fr_CH
加利西亚语 – 西班牙GL_ES
德语 – 奥地利德_AT
德语 – 比利时德_BE
德语 – 德国德_DE
德语 – 卢森堡德鲁
德语 – 瑞士德_CH
希腊语 – 希腊el_GR
古吉拉特语 – 印度gu_IN
希伯来语 – 以色列他_IL
印地语 – 印度嗨_IN
匈牙利语 – 匈牙利胡_HU
冰岛语 – 冰岛伊斯兰国
印度尼西亚语 – 印度尼西亚id_ID
意大利语 – 意大利它_IT
意大利语 – 瑞士
日语 – 日本ja_JP
韩语 – 大韩民国ko_KR
拉脱维亚语 – 拉脱维亚LV_LV
立陶宛语 – 立陶宛LT_LT
马其顿语 – 前南斯拉夫马其顿语MK_MK
马来语 – 马来西亚女士_MY
蒙古 – 蒙古语MN_MN
挪威语 – 挪威不,不
挪威语(博克马尔) – 挪威NB_NO
波兰语 – 波兰PL_PL
葡萄牙语 – 巴西pt_BR
葡萄牙语 – 葡萄牙点_点
罗马尼亚语 – 罗马尼亚罗_RO
俄语 – 俄罗斯RU_RU
俄语 – 乌克兰ru_UA
塞尔维亚语 – 南斯拉夫SR_RS
斯洛伐克 – 斯洛伐克sk_SK
斯洛文尼亚语 – 斯洛文尼亚sl_SI
西班牙语 – 阿根廷es_AR
西班牙语 – 玻利维亚es_BO
西班牙语 – 智利es_CL
西班牙语 – 哥伦比亚es_CO
西班牙语 – 哥斯达黎加es_CR
西班牙语 – 多米尼加共和国es_DO
西班牙语 – 厄瓜多尔es_EC
西班牙语 – 萨尔瓦多es_SV
西班牙语 – 危地马拉es_GT
西班牙语 – 洪都拉斯es_HN
西班牙语 – 墨西哥es_MX
西班牙语 – 尼加拉瓜es_NI
西班牙语 – 巴拿马es_PA
西班牙语 – 巴拉圭es_PY
西班牙语 – 秘鲁es_PE
西班牙语 – 波多黎各es_PR
西班牙语 – 西班牙es_ES
西班牙语 – 美国es_US
西班牙语 – 乌拉圭es_UY
西班牙语 – 委内瑞拉es_VE
瑞典语 – 芬兰sv_FI
瑞典语 – 瑞典sv_SE
泰米尔语 – 印度塔_IN
泰卢固语 – 印度TE_IN
泰语 – 泰国th_TH
土耳其语 – 土耳其tr_TR
乌克兰语 – 乌克兰uk_UA
乌尔都语 – 巴基斯坦ur_PK
越南语 – 越南vi_VN

请参阅示例数据库中的以下orders表:

订单表

以下语句返回按 2004 年工作日名称分组的订单计数。

SELECT 
    DAYNAME(orderdate) weekday, 
    COUNT(*) total_orders
FROM
    orders
WHERE
    YEAR(orderdate) = 2004
GROUP BY weekday
ORDER BY total_orders DESC;Code language: SQL (Structured Query Language) (sql)
MySQL 日期名称

周五下单数量最多,周日有两笔下单。

在本教程中,您学习了如何使用 MySQL DAYNAME函数来获取特定日期的工作日名称。

本教程有帮助吗?