与特定国家/地区相关的mysql日期格式

与特定国家/地区相关的mysql日期格式,mysql,date-formatting,Mysql,Date Formatting,我使用了MySQL函数DATE\u格式(table.field,'%d%b%Y'),其中第一个参数是我的列,第二个是根据日期逻辑格式化列的模式 此函数的输出为英文: 2014年2月10日 我想将区域设置语言设置为fr\u fr,这将输出正确的字符串: 10 Fév 2014 问题:如何在查询之前更改数据库的区域设置语言(以便根据另一种语言进行更改)?您需要在MySQL服务器中设置正确的语言设置。看这里: 用于日和月名称和缩写的语言由lc\u time\u names系统变量的值控制(第10.7节

我使用了MySQL函数
DATE\u格式(table.field,'%d%b%Y')
,其中第一个参数是我的列,第二个是根据日期逻辑格式化列的模式

此函数的输出为英文:

2014年2月10日

我想将区域设置语言设置为fr\u fr,这将输出正确的字符串:

10 Fév 2014


问题:如何在查询之前更改数据库的区域设置语言(以便根据另一种语言进行更改)?

您需要在MySQL服务器中设置正确的语言设置。看这里:

用于日和月名称和缩写的语言由
lc\u time\u names
系统变量的值控制(第10.7节,“MySQL服务器语言环境支持”)

在查询之前运行以下命令:

SET lc_time_names = 'fr_FR';

然后将其设置回原始值
lc_time_names

试试这个,希望对你有所帮助:

SELECT
  CONCAT(DATE_FORMAT(CURDATE(), '%d'), " ",
  CASE
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Jan' THEN '01'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Feb' THEN '02'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Mar' THEN '03'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Apr' THEN '04'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'May' THEN '05'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Jun' THEN '06'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Jul' THEN '07'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Aug' THEN '08'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Sep' THEN '09'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Oct' THEN '10'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Nov' THEN '11'
    WHEN DATE_FORMAT(CURDATE(), '%b') = 'Dec' THEN '12'
  END, " ",
  DATE_FORMAT(CURDATE(), '%Y')) AS DATE

感谢您输入Zega,但我认为这并不能解决问题,因为这样会强制使用日期格式,而且对于let us say french(让我们说法语)也不起作用(因为您必须覆盖语言或您选择的case语句)。我认为@Yasen Zhelev的回答很好地解决了这个问题,我会坚持下去,谢谢你。这帮助了我,用mysql多查询解决了我在php中的进一步问题,thx