不同格式的 Oracle Decode 函数结果

标签 oracle decode

SELECT DECODE (SYSDATE, SYSDATE + 1, NULL, SYSDATE)
  FROM DUAL;


SELECT DECODE (SYSDATE, SYSDATE + 1, TO_DATE (NULL), SYSDATE)
  FROM DUAL;

为什么我从上面的查询中得到不同格式的结果?

我正在使用 Oracle 数据库 10g 企业版 10.2.0.4.0 - 64bi

最佳答案

decode函数结果具有第三个参数的数据类型。在第一种情况下,由于没有为 NULL 指定数据类型,因此使用默认的 VARCHAR2。在第二种情况下,明确要求 DATE,因此结果是日期。

换句话说,第一个查询与:

SELECT DECODE(SYSDATE, SYSDATE + 1, to_char(NULL), to_char(SYSDATE)) FROM DUAL;

此查询的输出将根据您的 NLS_DATE_FORMAT session 参数进行格式化,而第二个查询将返回一个日期,该日期将根据您的客户端设置显示。

关于不同格式的 Oracle Decode 函数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3853420/

相关文章:

java - 在 Netbeans Maven 项目中添加 JDBC

Javascript encodeURIComponent() 不适用于 MySQL 编码 UTF-8 字符串

r - 在 R 中解码 URL 字符串向量

java - 将日期字符串数组上传到 oracle

sql - 执行 100k 插入语句的最佳方法是什么?

oracle - 如何访问 PL/SQL 存储过程的 AST(抽象语法树)?

xml - 如何使用 goroutines 解码 XML

jquery - 如何使用解码jquery脚本

android - 调用 REST web 服务时 Android 中的 UTF8 编码

performance - Oracle 10g 小 Blob 或 Clob 没有被内联存储?