【问题标题】:Oracle TO_DATE() function - what is the universal version?Oracle TO_DATE() 函数 - 什么是通用版本?
【发布时间】:2014-09-20 19:06:01
【问题描述】:

Oracle SQL函数TO_DATE()TO_TIMESTAMP()的通用版本是什么?

简单表格举例:

CREATE TABLE  SAMPLE
    (
        TRUE_DATE DATE,
        CHAR_DATE VARCHAR2(10 CHAR)
    );

当使用相同的 TO_DATE() 函数在 DATE 和 VARCHAR 字段中写入日期时

INSERT INTO SAMPLE
(TRUE_DATE, CHAR_DATE)
VALUES
(TO_DATE('1990-01-01','YYYY-MM-DD'), TO_DATE('1990-01-01','YYYY-MM-DD'));

在 Oracle 中它可以正常工作。如何编写具有相同行为的类似内容以适用于所有数据库系统?

【问题讨论】:

  • 没有通用版本,但是您可以为不同的数据库编写不同的查询并检查应用程序中的数据库风格,并为该特定数据库使用正确的查询。不是您要找的,我知道。
  • @Mihai:有一个“通用”版本——由 SQL 标准定义的版本。 Buf是否所有DBMS都支持这是另一个问题
  • TO_DATE 返回一个日期。 TO_TIMESTAMP 返回一个 TIMESTAMP。这些是完全不同的数据类型。

标签: sql oracle datetime ansi-sql


【解决方案1】:

“通用”版本是 SQL 标准定义的日期和时间戳文字格式:date '2014-09-20'timestamp '2014-09-20 22:43:03'

但并非所有 DBMS 都支持 - 但更多 DBMS 支持 ANSI 文字而不是 to_date()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 2014-02-01
    • 2012-07-28
    • 2011-10-28
    • 1970-01-01
    相关资源
    最近更新 更多