我想编写一个查询,该查询仅以3个字符返回月份,但第一个字符应为大写字母,其余为非大写字母。例如DEC应该是(Dec)或JAN(Jan)。
select substr(sysdate,4,3) from dual;
上面的SQL代码返回月份,但以大写的“ DEC”表示,因此我希望输出为“ Dec”。
有人知道如何实现吗?
谢谢
答案 0 :(得分:3)
如先前的回答所述,无需进行操作。
您可以简单地这样写:
SELECT TO_CHAR (SYSDATE, 'Mon', 'nls_date_language=American') FROM DUAL;
如果将“ Month”作为第二个参数,则将获得“ December”;如果将“ month”传递给您,则将获得“ December”;如果您将“ Mon”传递给您,则将获得“ Dec” ',如您所问。
希望我能帮上忙!
答案 1 :(得分:2)
您可以尝试将substr
与to_char
功能一起使用。
select substr(to_char(sysdate, 'Month', 'nls_date_language=American') ,0,3) from dual
注意
使用nls_date_language=American
在to_char
函数中设置区域性。
答案 2 :(得分:0)
这确实可以正常使用,但要使用一个额外的功能,即带有大写字母的首字母:
select initcap(substr(sysdate,4,3)) from dual;