与特定国家/地区相关的mysql日期格式
我使用了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节
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