• MySQL系统变量之lc_time_names语言环境


            通常在面向全球化的系统中,会根据所在地区设置时区(设置当前会话的 time_zone 系统变量的值),以使显示当地日期时间。如何将日期显示为当地区域格式呢?本文将结合 lc_time_names 系统变量进行举例。

    目录

    1、查看MySQL语言区域

    2、设置MySQL语言区域

    3、MySQL支持的语言

    4、DATE_FORMAT()函数

    5、IANA已注册的语言


    环境配置:

    1、查看MySQL语言区域

    1. -- 查看MySQL当前会话语言区域
    2. SHOW VARIABLES LIKE '%lc_time_names%';
    3. -- 查看MySQL全局语言区域
    4. SHOW GLOBAL VARIABLES LIKE '%lc_time_names%';

    默认值为 en_US,与 操作系统 的区域设置无关。

    2、设置MySQL语言区域

    如设置以 中文 格式显示:

    1. -- 设置MySQL当前会话语言区域
    2. SET lc_time_names='zh_CN';
    3. -- 或
    4. SET @@lc_time_names='zh_CN';
    5. -- 或
    6. SET @@SESSION.lc_time_names='zh_CN';
    7. -- 或
    8. SET SESSION lc_time_names='zh_CN';
    9. -- 设置MySQL全局语言区域(临时,重启前生效)
    10. SET @@GLOBAL.lc_time_names='zh_CN';
    11. -- 或
    12. 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)
    %D0th带有英文后缀 ( , 1st2nd3rd, ...)的月份中的某天
    %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)
    %pAM或者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年份,数字(两位数)
    %%文字%字符
    %Xx, 对于上面未列出的任何 “ 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

  • 相关阅读:
    Vue3+NodeJS 接入文心一言, 发布一个 VSCode 大模型问答插件
    Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程
    vue-cil搭建项目
    软件工程复习
    前端 javascript 基础常见面试题
    Java SE 11 新增特性
    电子技术基础(三)__第6章 组合逻辑电路第5篇___编码器
    【Python小项目之Tkinter应用】随机点名/抽奖工具大优化:新增选项窗口!可选是否重复点名以及随机点名!可以手动选择文件及文件类型并预览文件!
    LeetCode,回溯算法
    数仓搭建-DWD层
  • 原文地址:https://blog.csdn.net/Sn_Keys/article/details/126839154