コンテンツにスキップ

式を日付に変換します。変換の種類は次のとおりです。

  • タイムスタンプ形式の文字列を日付に変換する:指定した文字列から日付を抽出します。

  • 整数を日付に変換する:整数を、Unix エポック(1970 年 1 月 1 日の午前 0 時)より前(負の数の場合)または後(正の数の場合)の日数として解釈します。Date 値の範囲は 1000-01-01 から 9999-12-31 までです。「SELECT TO_DATE(9999999999999999999)」を実行すると、PlaidCloud Lakehouse はエラーを返します。

  • 指定した書式を使用して文字列を日付に変換する:この関数は 2 つの引数を取り、最初の文字列を、2 番目の文字列で指定した書式に基づいて日付に変換します。PlaidCloud Lakehouse で日付と時刻の書式をカスタマイズするには、指定子を使用できます。サポートされている指定子の一覧については、「日付と時刻の書式設定」を参照してください。

日付の書式は strftime 仕様で表現されます。クイックリファレンスを参照してください。

関連項目:TO_TIMESTAMP

例 出力
%m/%d/%Y 06/05/2013
%A, %B %e, %Y Sunday, June 5, 2013
%b %e %a Jun 5 Sun
例 出力
%H:%M 23:05
%I:%M %p 11:05 PM
記号 例 対象
%a Sun 曜日
%A Sunday
%w 0..6 (日曜日が 0)
— — —
%y 13 年
%Y 2013
— — —
%b Jan 月
%B January
%m 01..12
— — —
%d 01..31 日
%e 1..31
記号 例 対象
%l 1 時
%H 00..23 24 時間制の時
%I 01..12 12 時間制の時
– — —
%M 00..59 分
%S 00..60 秒
— — —
%p AM AM または PM
%Z +08 タイムゾーン
— — —
%j 001..366 年内通算日
%% % リテラルの % 文字
func.to_date('<timestamp_expr>')
func.to_date(<integer>)
func.to_date('<string>', '<format>')
func.typeof(func.to_date('2022-01-02')), func.typeof(func.str_to_date('2022-01-02'))
┌───────────────────────────────────────────────────────────────────────────────────────┐
│ func.typeof(func.to_date('2022-01-02')) │ func.typeof(func.str_to_date('2022-01-02')) │
├─────────────────────────────────────────┼─────────────────────────────────────────────┤
│ DATE │ DATE │
└───────────────────────────────────────────────────────────────────────────────────────┘
-- Convert a timestamp-format string
TO_DATE('<timestamp_expr>')
-- Convert an integer
TO_DATE(<integer>)
-- Convert a string using the given format
TO_DATE('<string>', '<format>')

この関数は、「YYYY-MM-DD」形式の日付を返します。

SELECT TYPEOF(TO_DATE('2022-01-02')), TYPEOF(STR_TO_DATE('2022-01-02'));
┌───────────────────────────────────────────────────────────────────┐
│ typeof(to_date('2022-01-02')) │ typeof(str_to_date('2022-01-02')) │
├───────────────────────────────┼───────────────────────────────────┤
│ DATE │ DATE │
└───────────────────────────────────────────────────────────────────┘

返された日付を文字列に戻すには、DATE_FORMAT 関数を使用します。

SELECT DATE_FORMAT(TO_DATE('2022-01-02')) AS dt, TYPEOF(dt);
┌─────────────────────────┐
│ dt │ typeof(dt) │
├────────────┼────────────┤
│ 2022-01-02 │ VARCHAR │
└─────────────────────────┘

SQL の例 1:タイムスタンプ形式の文字列の変換

Section titled “SQL の例 1:タイムスタンプ形式の文字列の変換”
SELECT TO_DATE('2022-01-02T01:12:00+07:00'), STR_TO_DATE('2022-01-02T01:12:00+07:00');
┌─────────────────────────────────────────────────────────────────────────────────┐
│ to_date('2022-01-02t01:12:00+07:00') │ str_to_date('2022-01-02t01:12:00+07:00') │
├──────────────────────────────────────┼──────────────────────────────────────────┤
│ 2022-01-01 │ 2022-01-01 │
└─────────────────────────────────────────────────────────────────────────────────┘
SELECT TO_DATE('2022-01-02'), STR_TO_DATE('2022-01-02');
┌───────────────────────────────────────────────────┐
│ to_date('2022-01-02') │ str_to_date('2022-01-02') │
├───────────────────────┼───────────────────────────┤
│ 2022-01-02 │ 2022-01-02 │
└───────────────────────────────────────────────────┘
SELECT TO_DATE(1), STR_TO_DATE(1), TO_DATE(-1), STR_TO_DATE(-1);
┌───────────────────────────────────────────────────────────────────┐
│ to_date(1) │ str_to_date(1) │ to_date((- 1)) │ str_to_date((- 1)) │
│ Date │ Date │ Date │ Date │
├────────────┼────────────────┼────────────────┼────────────────────┤
│ 1970-01-02 │ 1970-01-02 │ 1969-12-31 │ 1969-12-31 │
└───────────────────────────────────────────────────────────────────┘

SQL の例 3:指定した書式を使用した文字列の変換

Section titled “SQL の例 3:指定した書式を使用した文字列の変換”
SELECT TO_DATE('12/25/2022','%m/%d/%Y'), STR_TO_DATE('12/25/2022','%m/%d/%Y');
┌───────────────────────────────────────────────────────────────────────────┐
│ to_date('12/25/2022', '%m/%d/%y') │ str_to_date('12/25/2022', '%m/%d/%y') │
├───────────────────────────────────┼───────────────────────────────────────┤
│ 2022-12-25 │ 2022-12-25 │
└───────────────────────────────────────────────────────────────────────────┘