本文主要是介绍MySQL系统变量之lc_time_names语言环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通常在面向全球化的系统中,会根据所在地区设置时区(设置当前会话的 time_zone 系统变量的值),以使显示当地日期时间。如何将日期显示为当地区域格式呢?本文将结合 lc_time_names 系统变量进行举例。
目录
1、查看MySQL语言区域
2、设置MySQL语言区域
3、MySQL支持的语言
4、DATE_FORMAT()函数
5、IANA已注册的语言
环境配置:
- MySQL-8.0.30、MySQL-5.7.38
- CentOS-7.9.2009
1、查看MySQL语言区域
-- 查看MySQL当前会话语言区域
SHOW VARIABLES LIKE '%lc_time_names%';-- 查看MySQL全局语言区域
SHOW GLOBAL VARIABLES LIKE '%lc_time_names%';
默认值为 en_US,与 操作系统 的区域设置无关。
2、设置MySQL语言区域
如设置以 中文 格式显示:
-- 设置MySQL当前会话语言区域
SET lc_time_names='zh_CN';
-- 或
SET @@lc_time_names='zh_CN';
-- 或
SET @@SESSION.lc_time_names='zh_CN';
-- 或
SET SESSION lc_time_names='zh_CN';-- 设置MySQL全局语言区域(临时,重启前生效)
SET @@GLOBAL.lc_time_names='zh_CN';
-- 或
SET GLOBAL lc_time_names='zh_CN';
lc_time_names 变量对 日期和时间函数 的影响:
- 影响 DATE_FORMAT()、DAYNAME()、MONTHNAME() 函数的输出
- 不影响 STR_TO_DATE()、GET_FORMAT() 、FORMAT()、NOW() 功能
- 可以在运行时设置 SESSION 或 GLOBAL 级的值;或者在《my.cnf》中全局系统变量
3、MySQL支持的语言
MySQL支持的语言环境集 与 操作系统支持的语言环境不同,lc_time_names 变量可用值如下:
区域值 | 意义 |
---|---|
ar_AE | 阿拉伯语 - 阿拉伯联合酋长国 |
ar_BH | 阿拉伯语 - 巴林 |
ar_DZ | 阿拉伯语 - 阿尔及利亚 |
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_YE | 阿拉伯语 - 也门 |
be_BY | 白俄罗斯语 - 白俄罗斯 |
bg_BG | 保加利亚语 - 保加利亚 |
ca_ES | 加泰罗尼亚语 - 西班牙 |
cs_CZ | 捷克 - 捷克共和国 |
da_DK | 丹麦语 - 丹麦 |
de_AT | 德国 - 奥地利 |
de_BE | 德国 - 比利时 |
de_CH | 德国 - 瑞士 |
de_DE | 德语 - 德国 |
de_LU | 德语 - 卢森堡 |
el_GR | 希腊语 - 希腊 |
en_AU | 英语 - 澳大利亚 |
en_CA | 英语 - 加拿大 |
en_GB | 英语 - 英国 |
en_IN | 英语 - 印度 |
en_NZ | 英语 - 新西兰 |
en_PH | 英语 - 菲律宾 |
en_US | 美国英语 |
en_ZA | 英语 - 南非 |
en_ZW | 英语 - 津巴布韦 |
es_AR | 西班牙语 - 阿根廷 |
es_BO | 西班牙语 - 玻利维亚 |
es_CL | 西班牙语 - 智利 |
es_CO | 西班牙语 - 哥伦比亚 |
es_CR | 西班牙语 - 哥斯达黎加 |
es_DO | 西班牙语 - 多米尼加共和国 |
es_EC | 西班牙语 - 厄瓜多尔 |
es_ES | 西班牙语 - 西班牙 |
es_GT | 西班牙语 - 危地马拉 |
es_HN | 西班牙语 - 洪都拉斯 |
es_MX | 西班牙语 - 墨西哥 |
es_NI | 西班牙语 - 尼加拉瓜 |
es_PA | 西班牙语 - 巴拿马 |
es_PE | 西班牙语 - 秘鲁 |
es_PR | 西班牙语 - 波多黎各 |
es_PY | 西班牙语 - 巴拉圭 |
es_SV | 英语-萨尔瓦多 |
es_US | 西班牙语 - 美国 |
es_UY | 西班牙语 - 乌拉圭 |
es_VE | 西班牙语 - 委内瑞拉 |
et_EE | 爱沙尼亚语 - 爱沙尼亚 |
eu_ES | 巴斯克 - 西班牙 |
fi_FI | 芬兰语 - 芬兰 |
fo_FO | 法罗语 - 法罗群岛 |
fr_BE | 法语 - 比利时 |
fr_CA | 法语 - 加拿大 |
fr_CH | 法语 - 瑞士 |
fr_FR | 法语 - 法国 |
fr_LU | 法语 - 卢森堡 |
gl_ES | 加利西亚 - 西班牙 |
gu_IN | 古吉拉特语 - 印度 |
he_IL | 希伯来语 - 以色列 |
hi_IN | 否 - 印度 |
hr_HR | 克罗地亚语 - 克罗地亚 |
hu_HU | 匈牙利语 - 匈牙利 |
id_ID | 印度尼西亚语 - 印度尼西亚语 |
is_IS | 冰岛语 - 冰岛 |
it_CH | 意大利语 - 瑞士 |
it_IT | 意大利语 - 意大利 |
ja_JP | 日本 - 日本 |
ko_KR | 韩语 - 大韩民国 |
lt_LT | 立陶宛语 - 立陶宛语 |
lv_LV | 拉脱维亚语 - 拉脱维亚语 |
mk_MK | 马其顿 - 北马其顿 |
mn_MN | 蒙古 - 蒙古语 |
ms_MY | 马来语 - 马来西亚 |
nb_NO | 挪威语(博克马尔) - 挪威 |
nl_BE | 荷兰语 - 比利时 |
nl_NL | 荷兰语 - 荷兰 |
no_NO | 挪威语 - 挪威 |
pl_PL | 波兰语 - 波兰 |
pt_BR | 葡萄牙语 - 巴西 |
pt_PT | 葡萄牙语 - 葡萄牙 |
rm_CH | 罗曼什语 - 瑞士 |
ro_RO | 罗马尼亚语 - 罗马尼亚 |
ru_RU | 俄语 - 俄罗斯 |
ru_UA | 俄语 - 乌克兰 |
sk_SK | 斯洛伐克 - 斯洛伐克 |
sl_SI | 斯洛文尼亚语 - 斯洛文尼亚 |
sq_AL | 阿尔巴尼亚语 - 阿尔巴尼亚语 |
sr_RS | 塞尔维亚语 - 塞尔维亚 |
sv_FI | 瑞典语 - 芬兰 |
sv_SE | 瑞典语 - 瑞典 |
ta_IN | 泰米尔语 - 印度 |
te_IN | 泰卢固语 - 印度 |
th_TH | 泰语 - 泰国 |
tr_TR | 土耳其语 - 土耳其 |
uk_UA | 乌克兰语 - 乌克兰 |
ur_PK | 乌尔都语 - 巴基斯坦 |
vi_VN | 越南语 - 越南 |
zh_CN | 中国 - 中国 |
zh_HK | 中文 - 香港 |
zh_TW | 中国 - 台湾 |
4、DATE_FORMAT()函数
- 语法:DATE_FORMAT(date, format)
- 描述:根据 format 字符串 格式化 date 值
- 说明:如果任一参数是NULL,则函数返回 NULL
以下 说明符 可以用在 format 字符串中:
说明符 | 描述 |
%a | 工作日的缩写名称 ( Sun.. Sat) |
%b | 缩写月份名称 ( Jan.. Dec) |
%c | 月份,数字 ( 0.. 12) |
%D | 0th带有英文后缀 ( , 1st, 2nd, 3rd, ...)的月份中的某天 |
%d | 月份中的日期,数字 ( 00.. 31) |
%e | 月份中的日期,数字 ( 0.. 31) |
%f | 微秒 ( 000000.. 999999) |
%H | 小时(00.. 23) |
%h | 小时(01.. 12) |
%I | 小时(01.. 12) |
%i | 分钟,数字 ( 00.. 59) |
%j | 一年中的某一天 ( 001.. 366) |
%k | 小时(0.. 23) |
%l | 小时(1.. 12) |
%M | 月份名称 ( January.. December) |
%m | 月份,数字 ( 00.. 12) |
%p | AM或者PM |
%r | 时间,12 小时(hh:mm:ss后跟 AMor PM) |
%S | 秒 ( 00.. 59) |
%s | 秒 ( 00.. 59) |
%T | 时间,24 小时制 ( hh:mm:ss) |
%U | 周 ( 00.. 53),其中星期日是一周的第一天; WEEK()模式 0 |
%u | 周 ( 00.. 53),其中星期一是一周的第一天; WEEK()模式一 |
%V | 周 ( 01.. 53),其中星期日是一周的第一天; WEEK()模式二;与 %X |
%v | 周 ( 01.. 53),其中星期一是一周的第一天; WEEK()模式3;与 %x |
%W | 工作日名称 ( Sunday.. Saturday) |
%w | 星期几(0=星期日.. 6=星期六) |
%X | 星期天是一周的第一天的一周年,数字,四位数字;与%V |
%x | 一周的年份,其中星期一是一周的第一天,数字,四位数字;与%v |
%Y | 年份,数字,四位数 |
%y | 年份,数字(两位数) |
%% | 文字%字符 |
%X | x, 对于上面未列出的任何 “ x” |
说明符 同样适用于函数:STR_TO_DATE()、TIME_FORMAT()、 UNIX_TIMESTAMP()
5、IANA已注册的语言
IANA (The Internet Assigned Numbers Authority,互联网数字分配机构)是负责协调一些使Internet正常运作的机构。同时,由于Internet已经成为一个全球范围的不受集权控制的全球网络,为了使网络在全球范围内协调,存在对互联网一些关键的部分达成技术共识的需要,而这就是IANA的任务。
Language Subtag Registry - Protocol Registrieshttps://www.iana.org/protocols
IANA 列出的语言和区域子标签https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
参考:
MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variableshttps://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lc_time_names
MySQL :: MySQL 8.0 Reference Manual :: 10.16 MySQL Server Locale Supporthttps://dev.mysql.com/doc/refman/8.0/en/locale-support.html
MySQL :: MySQL 8.0 Reference Manual :: 12.7 Date and Time Functionshttps://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
这篇关于MySQL系统变量之lc_time_names语言环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!