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

时间:2015-11-03 13:34:46

标签: mysql date-formatting

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

此功能的输出是英文:

10 Feb 2014

我想将语言环境语言设置为 fr_FR ,这将输出正确的字符串:

10 Fév 2014

问题:如何在查询之前更改数据库的语言环境语言(为了根据其他语言进行更改)?

2 个答案:

答案 0 :(得分:3)

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

用于日期和月份名称和缩写的语言由lc_time_names系统变量的值控制(第10.7节“MySQL服务器区域设置支持”)。

在查询之前运行此命令:

SET lc_time_names = 'fr_FR';

然后将其设置回原始值lc_time_names;

答案 1 :(得分:0)

尝试一下,希望对您有所帮助

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