我有一个巨大的查询(在PHP文件中),它从某些日期为我提供了月份名称:
CASE A.STATUS
WHEN 'Cancel' THEN LEFT(MONTHNAME(DT_CANCEL),3)
WHEN 'About to cancel' THEN LEFT(MONTHNAME(DATA_REGISTER),3)
END AS MONTH_CANCEL,
是否可以在MONTHANAME中插入我的语言?
类似:
WHEN 'Cancel' THEN SET LANGUAGE Portuguese LEFT(MONTHNAME(DT_CANCEL),3)
我不想为eveymonth编写案例以将“ Dec”转换为“ Dez”,依此类推,这将花费很长时间。
答案 0 :(得分:2)
在运行查询之前,运行以下查询:
SET lc_time_names = 'pt_PT';
答案 1 :(得分:2)
不幸的是,在MySQL中,这不能在查询中动态完成。
从文档中:
月份名称使用的语言由
lc_time_names
系统变量控制。
您需要单独的SQL命令来更改设置:
SET lc_time_names = 'pt_PT';
SELECT MONTHNAME('2018-12-28') AS 'Month';
lc_time_names
的值在MySQL会话的生存期内一直存在。