我正在尝试将使用GETDATE()
函数获得的日期转换为YY-MON-DD
格式,如04 Nov 2022
。我使用TO_VARCHAR()
将GETDATE()
返回的日期转换为字符串。在使用TO_VARCHAR()
之前,输出是正确的,即SELECT TO_VARCHAR(GET_DATE, 'DD-MON-YY')
返回所需的格式。
当我试图围绕TO_DATE()
函数包装它时,日期格式会更改为2022-11-04
。
SELECT TO_DATE(TO_CHAR(GETDATE(), 'DD-MON-YY'), 'DD-MON-YY')
我如何解决问题和纠正格式!?
发布于 2022-11-04 05:59:17
日期将以会话的默认格式显示。如果您想以不同的格式显示它,则需要使用TO_CHAR(date_col,fmt)构造。因此,select语句只需要:
SELECT TO_CHAR(GETDATE(), 'DD-MON-YY')
包装一个TO_DATE,如果您想要做的只是将该列显示为SELECT语句的输出,则不会达到任何效果。
发布于 2022-11-04 06:05:39
您需要在会话级别设置所需的格式。
alter session
set date_output_format='DD-MON-YYYY';
select getdate()::date --getdate() returns a timestamp not a date
select current_date() --alternatively
正如Nick建议的那样,使用select来格式化日期,而不是修改会话参数。
https://stackoverflow.com/questions/74317862
复制相似问题