2014-09-20 70 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