フォーマットされた文字列を日付 (あるいは日付をフォーマットされた文字列) に変換する汎用 SQL 文字列関数です。
Synopsis
TO_DATE(date-expression[,format])
TODATE(date-expression[,format])
-
日付をフォーマットされた日付表示文字列に変換する。入力日付は、DATE データ型または整数
$HOROLOG 日付値になります。
-
フォーマットされた日付表示文字列を日付に変換する。
TO_DATE は、さまざまな文字列フォーマットで日付を入力して表示するために使用されます。DATE データ型の変換を実行するには、
CAST 関数または
CONVERT 関数を使用します。
以下のメソッド・コールを使用することで、Caché ObjectScript からこの関数を呼び出すこともできます。
format が指定されていない場合、
TO_DATE は、DD MON YYYY でフォーマットされた日付を返します。例えば、'11 Nov 1993' です。
SELECT DISTINCT DOB,
TO_DATE(DOB) AS DateIn,
TO_DATE(59651) AS IntIn,
TO_DATE('59651') AS IntStrIn,
TO_DATE(CAST('1993-11-12' AS DATE)) AS DateCastIn
FROM Sample.Person
format は、以下の規則に従って指定された 1 つまたは複数の形式要素の文字列です。
-
-
形式要素の任意のシーケンスや数が許可されます ('J' 要素の例外を除く)。
-
形式要素は、英数字でない文字 (スペース、スラッシュ、ハイフンなど) で区切られなければなりません。区切り文字は、出力文字列にリテラルとして表示されます。
-
無効の形式要素の文字は、出力文字列にリテラルとして表示されます。
以下のテーブルは、整数を日付文字列に変換する際に
format パラメータに対して有効な日付形式要素のリストです。
ユリウス 日の形式は、1840 年より前 (および 9999 年より後) の日付の表示を可能にするために提供されています。
文字 'J' を含む文字列で構成される
format を指定する場合、返される日付は、紀元前 (BCE) 4713 年 1 月 1 日からカウントされた ユリウス 日になります。文字 'J' のみが、この
format 文字列内で指定できます。その他すべての文字を取り込むと、文字 'J' がリテラルとして処理され、日付は標準の日付として変換されます。
ユリウス日は、既定形式 DD MON YYYY で表示し、BCE (西暦紀元前) の日付に対して接尾語の文字 'BC' を追加します。現在により近い (CE または AD) 日付には接尾辞を付けません。
SELECT DISTINCT TO_DATE(59684,'J') AS Julian_Date
FROM Sample.Person
SELECT DISTINCT TO_DATE(2453500,'J') AS Julian_Date
FROM Sample.Person
以下の例は、日付整数 (1840 年 12 月 31 日からの日数) を受け取り、指定された形式で対応する日付を返します。
SELECT DISTINCT TO_DATE(59684,'MM/DD/YYYY')
FROM Sample.Person
SELECT DISTINCT TO_DATE(59684,'DAY MONTH DD, YYYY')
FROM Sample.Person
SELECT DISTINCT TO_DATE(59684)
FROM Sample.Person
SELECT DISTINCT TO_DATE(59684,'I went to the store on DAY.')
FROM Sample.Person
これは、I went to the store on Saturday. を返します。
以下の例は、DATE データ型のフィールドを受け取り、この日付のフォーマットされたバージョンを返します。
SELECT DISTINCT DOB, TO_DATE(DOB,'DAY MONTH DD, YYYY')
FROM Sample.Person
以下の例は、日付関数を受け取り、指定された形式内の現在の日付を返します。
SELECT DISTINCT TO_DATE(CURRENT_DATE,'MM/DD/YYYY')
FROM Sample.Person
SELECT DISTINCT TO_DATE({fn CURDATE()})
FROM Sample.Person
SELECT DISTINCT TO_DATE({fn CURDATE},'I went to the store on DAY.')
FROM Sample.Person
以下の例は、日付文字列を受け取り、それを指定された形式コードに従って解釈し、対応する
$HOROLOG 日付整数を返します。
SELECT DISTINCT TO_DATE('May 29, 2004','MONTH DD, YYYY')
FROM Sample.Person
SELECT DISTINCT TO_DATE('2004***05***29','YYYY***MM***DD')
FROM Sample.Person
SELECT DISTINCT TO_DATE('05/29/2004','MM/DD/YYYY')
FROM Sample.Person
SELECT DISTINCT TO_DATE('29 May 2004')
FROM Sample.Person