将日期转换为 Oracle 中的特定格式 SQL

Convert Date to specific format in Oracle SQL

我想在 Oracle 中将日期转换为这种格式“2020-08-19”SQL。

我确实尝试过这样做,但它 returns 作为 19-AUG-20

SELECT TO_DATE('2020-08-19', 'YYYY-MM-DD') FROM DUAL;

输出

19-AUG-20

我想要以下格式的输出:

2020-08-19

有人可以帮我解决这个问题吗?提前致谢!

如果您有 date 并希望显示为格式化的 字符串,则使用 TO_CHAR():

SELECT TO_CHAR(DATE '2020-08-19', 'YYYY-MM-DD') FROM DUAL;

在函数中,DATE '2020-08-19' 是一个 文字日期 :这是一个 date 数据类型。

至于你的原码:

SELECT TO_DATE('2020-08-19', 'YYYY-MM-DD') FROM DUAL;

它所做的是将输入 string 解释为 date,给定指定为第二个参数的格式。这个returns一个date,那就是根据你数据库的NLS_DATE_FORMAT参数显示或者session。您可以像这样更改 session 级别的参数值:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';

现在 运行 相同的查询会为您提供所需的结果。