如何从timestamp类型列中提取月份的完整英文名称
SQL提取日期完整英文月份名解决方案
你当前写法返回数字月份的核心原因是数据库会话默认语言配置不符合要求,或是你使用的数据库对应的日期格式化规则不匹配,以下是不同数据库的正确写法:
Oracle(你当前使用的
TO_CHAR+dual为Oracle原生语法)
直接在TO_CHAR函数中追加第三个语言参数强制返回英文月份名,额外加FM前缀可去除月份名称后自动补齐的多余空格:SELECT TO_CHAR(aia.invoice_date, 'FMMonth', 'NLS_DATE_LANGUAGE = AMERICAN') FROM dual;执行后即可直接返回
June格式的完整英文月份名。MySQL
使用DATE_FORMAT函数,格式符%M对应完整英文月份名:SELECT DATE_FORMAT(aia.invoice_date, '%M');PostgreSQL
TO_CHAR函数可指定语言区域参数确保返回英文结果:SELECT TO_CHAR(aia.invoice_date, 'FMMonth', 'en_US');SQL Server
使用DATENAME函数提取月份名称,提前设置语言为英文即可返回英文结果:SET LANGUAGE us_english; SELECT DATENAME(MONTH, aia.invoice_date);
内容的提问来源于stack exchange,提问作者Abinnaya
相关产品推荐
相关产品推荐

