2014-09-20 48 views
0

什么是Oracle SQL函数的通用版本TO_DATE()TO_TIMESTAMP()Oracle 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中,将不会出现错误的工作

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

当使用相同TO_DATE()函数。我怎样才能写出类似的,具有相同行为的东西来处理所有数据库系统?

+5

有是不是通用版本,但你可以为不同的数据库编写不同的查询,并检查应用程序中的数据库风格,并使用正确的查询来查找特定的数据库。不知道你在找什么,我知道。 – Mihai 2014-09-20 19:14:50

+2

@Mihai:有一个“通用”版本 - 由SQL标准定义的版本。 Buf是否所有DBMS都支持这是另一个问题 – 2014-09-20 20:08:11

+0

'TO_DATE'返回一个DATE。 'TO_TIMESTAMP'返回一个TIMESTAMP。这些是完全不同的数据类型。 – 2014-09-20 21:05:46

回答

2

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

但不是所有的DBMS支持 - 但更多的DBMS支持ANSI文字大于to_date()

+0

我会将此标记为已接受的答案。这适用于Oracle和DB2。我尝试过这个。谢谢。 – shx 2014-09-20 21:30:27