USER MANUALS

日時関数

日時関数は、型 intervaldaysecondintervalyearmonthlocaldatetimetimestamptimestamptz 、および date (非推奨) の値を操作します。

実行エンジンは、現在の日時を返す関数を、クエリごとに 1 回評価します。この関数に該当するのは、 CURRENT_DATELOCALTIMESTAMPCURRENT_TIMESTAMPLOCALTIME です。クエリにいずれかの関数が 2 回使用され、一方はデータベースに委任され、もう一方は Denodo で評価された場合、関数の結果が正確に一致しないことがあります。

次の関数が日時関数です。

ADDDAY

説明

ADDDAY 関数は、パラメータとして渡された日時の日フィールドを指定した量だけ増やして (increment が負の場合は減らして) 返します。

構文

ADDDAY( <value:intervaldaysecond>, <increment> ):intervaldaysecond
ADDDAY( <value:localdate>, <increment> ):localdate
ADDDAY( <value:timestamp>, <increment> ):timestamp
ADDDAY( <value:timestamptz>, <increment> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
ADDDAY( <value:date>, <increment> ):date
  • value: 必須。日時式。

  • increment: 必須。日フィールドを増やす量。数値が負の場合、日フィールドは減らされます。式の型は int または long になります。

SELECT time, ADDDAY(time, 8)
FROM v

time

addday

2020-06-29 19:19:41

2020-07-07 19:19:41

2020-12-31 22:59:56

2021-01-08 22:59:56

ADDHOUR

説明

ADDHOUR 関数は、パラメータとして渡された日時の時フィールドを指定した量だけ増やして (increment が負の場合は減らして) 返します。

構文

ADDHOUR( <value:intervaldaysecond>, <increment> ):intervaldaysecond
ADDHOUR( <value:time>, <increment> ):time
ADDHOUR( <value:timestamp>, <increment> ):timestamp
ADDHOUR( <value:timestamptz>, <increment> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
ADDDAY( <value:date>, <increment> ):date
  • value: 必須。日時式。

  • increment: 必須。時フィールドを増やす量。数値が負の場合、時フィールドは減らされます。式の型は int または long になります。

SELECT time, ADDHOUR(time, -2)
FROM v

time

addhour

2019-06-29 19:19:41

2019-06-29 17:19:41

2020-06-30 01:00:00

2020-06-29 23:00:00

ADDMILLIS

説明

ADDMILLIS 関数は、日時の値にミリ秒を追加します。増分は 0 より大きいか、0 未満になります。

構文

ADDMILLIS( <value:intervaldaysecond> [, <increment>] ):intervaldaysecond
ADDMILLIS( <value:time> [, <increment>] ):time
ADDMILLIS( <value:timestamp> [, <increment>] ):timestamp
ADDMILLIS( <value:timestamptz> [, <increment>] ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
ADDMILLIS( <value:date> [, <increment>] ):date
  • value: 必須。日時式。

  • increment: オプション。増分の値が指定されない場合は、1 ミリ秒となります。

例 1

SELECT timestamp, ADDMILLIS(timestamp)
FROM v;

timestamp

addmillis

2019-01-29 01:01:02.345

2019-01-29 01:01:02.346

2000-01-01 00:00:01

2000-01-01 00:00:01.001

例 2

SELECT timestamp, ADDMILLIS(timestamp, 3)
FROM v;

timestamp

addmillis

2019-01-29 01:01:02.345

2019-01-29 01:01:02.348

2000-01-01 00:00:01

2000-01-01 00:00:01.003

ADDMINUTE

説明

ADDMINUTE 関数は、パラメータとして渡された日時の分フィールドを指定した量だけ増やして (increment が負の場合は減らして) 返します。

構文

ADDMINUTE( <value:intervaldaysecond>, <increment> ):intervaldaysecond
ADDMINUTE( <value:time>, <increment> ):time
ADDMINUTE( <value:timestamp>, <increment> ):timestamp
ADDMINUTE( <value:timestamptz>, <increment> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
ADDMINUTE( <value:date>, <increment> ):date
  • value: 必須。日時式。

  • increment: 必須。分フィールドを増やす量。数値が負の場合、分フィールドは減らされます。式の型は int または long になります。

SELECT time, ADDMINUTE(time, 10)
FROM v

Time

addminute

2025-01-22 19:19:41

2025-01-22 19:29:41

2019-06-30 23:59:00

2019-07-01 00:09:00

ADDMONTH

説明

ADDMONTH 関数は、パラメータとして渡された日時の月フィールドを指定した量だけ増やして (increment が負の場合は減らして) 返します。

構文

ADDMONTH( <value:intervalyearmonth>, <increment> ):intervalyearmonth
ADDMONTH( <value:localdate>, <increment> ):localdate
ADDMONTH( <value:timestamp>, <increment> ):timestamp
ADDMONTH( <value:timestamptz>, <increment> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
ADDMONTH( <value:date, increment:int> ):date
  • value: 必須。日時式。

  • increment: 必須。月フィールドを増やす量。数値が負の場合、月フィールドは減らされます。式の型は int または long になります。

SELECT time, ADDMONTH(time, -12)
FROM v

time

addmonth

2020-06-29 19:19:41

2019-06-29 19:19:41

2021-01-08 22:59:56

2020-01-08 22:59:56

ADDSECOND

説明

ADDSECOND 関数は、パラメータとして渡された日時の秒フィールドを指定した量だけ増やして (increment が負の場合は減らして) 返します。

構文

ADDSECOND( <value:intervaldaysecond>, <increment> ):intervaldaysecond
ADDSECOND( <value:time>, <increment> ):time
ADDSECOND( <value:timestamp>, <increment> ):timestamp
ADDSECOND( <value:timestamptz>, <increment> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
ADDSECOND( <value:date>, <increment> ):date
  • value: 必須。日時式。

  • increment: 必須。秒フィールドを増やす量。数値が負の場合、秒フィールドは減らされます。式の型は int または long になります。

SELECT time, ADDSECOND(time, 5)
FROM v

time

addsecond

2019-01-29 19:19:41

2019-01-29 19:19:46

2020-06-30 22:59:56

2020-06-30 23:00:01

ADDWEEK

説明

ADDWEEK 関数は、パラメータとして渡された日時の週フィールドを指定した量だけ増やして (increment が負の場合は減らして) 返します。つまり、7 日の倍数で増減されます。

構文

ADDWEEK( <value:intervaldaysecond>, <increment> ):intervaldaysecond
ADDWEEK( <value:localdate>, <increment> ):localdate
ADDWEEK( <value:timestamp>, <increment> ):timestamp
ADDWEEK( <value:timestamptz>, <increment> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
ADDWEEK( <value:date>, <increment> ):date
  • value: 必須。日時フィールド。

  • increment: 必須。日フィールドを 7 日分増やす回数。数値が負の場合、日フィールドは減らされます。 0 の場合は未変更の value を返します。式の型は int または long になります。

SELECT time, ADDWEEK(time, -2)
FROM v

time

addweek

2019-06-29 19:19:41

2019-06-15 19:19:41

2021-01-08 22:59:56

2020-12-25 22:59:56

日付が 2 週間分減らされています。パラメータ increment が負の数であるため、増やすのではなく減らされました。

ADDYEAR

説明

ADDYEAR 関数は、パラメータとして渡された日時の年フィールドを指定した量だけ増やして (increment が負の場合は減らして) 返します。

構文

ADDWEEK( <value:intervalyearmonth>, <increment> ):intervalyearmonth
ADDWEEK( <value:localdate>, <increment> ):localdate
ADDWEEK( <value:timestamp>, <increment> ):timestamp
ADDWEEK( <value:timestamptz>, <increment> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
ADDWEEK( <value:date>, <increment> ):date
  • value: 必須。日時フィールド。

  • increment: 必須。年フィールドを増やす量。数値が負の場合、年フィールドは減らされます。式の型は int または long になります。

SELECT time, ADDYEAR(time, 7)
FROM v

time

addyear

2020-01-29 19:19:41

2027-01-29 19:19:41

2021-07-28 22:59:56

2028-07-28 22:59:56

AT TIME ZONE

説明

AT TIME ZONE 関数は、パラメータとして渡されたタイムスタンプを返します。このとき、そのタイムゾーンは、指定されたタイムゾーンに変更されます。これは CONVERT_TIMEZONE 関数に相当します。

構文

<timestamp:timestamp> AT TIME ZONE <targetTimezone:text> : timestamptz
<timestamptz:timestamptz> AT TIME ZONE <targetTimezone:text> : timestamp
  • targetTimezone: 必須。入力したタイムスタンプの変換先のタイムゾーン。

  • timestamp: 必須。変換するタイムスタンプ。

  • <timestamp> AT TIME ZONE <targetTimezone>CONVERT_TIMEZONE( targetTimezone:text, timestamp:timestamp ) : timestamptz に相当します。これはタイムゾーンが指定されていないタイムスタンプ値であり、UTCからのタイムゾーンオフセットから指定されたタイムゾーンに変換したTIMESTAMPTZ 値を返します。

  • <timestamptz> AT TIME ZONE <targetTimezone>CONVERT_TIMEZONE( targetTimezone:text, timestamptz:timestamptz ) : timestamp に相当します。これは TIMESTAMPTZ 型の値を取り、指定されたタイムゾーンに値を移行し、TIMESTAMP 型の値 (タイムゾーンなし) で日時を返します。

SELECT now() AT TIME ZONE 'UTC';

now()

convert_timezone

2022-12-29 19:00:00

2027-01-29 18:00:00

この結果では、ローカルタイムゾーンよりも 1 時間早い UTC タイムゾーンをターゲットタイムゾーンとして使用しています。使用されるローカルタイムゾーンは CET (中央ヨーロッパ標準時) です。

CONVERT_TIMEZONE

説明

CONVERT_TIMEZONE 関数は、あるタイムゾーンから別のタイムゾーンにタイムスタンプを変換します。

構文

CONVERT_TIMEZONE( sourceTimeZone:text, targetTimeZone:text, timestamp:timestamp ) : timestamp
CONVERT_TIMEZONE( targetTimezone:text, timestamp:timestamp ) : timestamptz
CONVERT_TIMEZONE( targetTimezone:text, timestamptz:timestamptz ) : timestamp
  • sourceTimeZone: 最初の構文に必要です。入力したタイムスタンプのタイムゾーン。

  • targetTimeZone: 必須。入力したタイムスタンプの変換先のタイムゾーン。

  • timestamp: 必須。変換するタイムスタンプ。

SELECT CONVERT_TIMEZONE('CET', 'America/Los_Angeles', cast('timestamp','2022-01-19 08:00:00'))

convert_timezone

2022-01-18 23:00:00

SELECT CONVERT_TIMEZONE('America/Los_Angeles', cast('timestamp','2022-01-18 23:00:00'))

convert_timezone

2022-01-19 08:00:00+01:00

SELECT CONVERT_TIMEZONE('America/Los_Angeles', cast('timestamptz','2022-01-19 08:00:00'))

convert_timezone

2022-01-18 23:00:00

タイムスタンプ「2022-01-19 08:00:00」が、3 つの異なる構文を使用して、CET (GMT+1) から「America/Los_Angeles」に変換され、またその逆に変換されています。

CURRENT_DATE

説明

CURRENT_DATE 関数は、現在の日付を表す localdate 値を返します。

構文

CURRENT_DATE() : localdate
CURRENT_DATE : localdate

この関数は、括弧付きでも括弧なしでも呼び出すことができます。次の例を参照してください。

SELECT CURRENT_DATE() AS current_date_1, CURRENT_DATE AS current_date_2

current_date_1

current_date_2

2025-01-22

2025-01-22

CURRENT_TIMESTAMP

説明

CURRENT_TIMESTAMP 関数は、現在の「タイムゾーン付きのタイムスタンプ」(timestamptz 型の値) を返します。

この関数は括弧なしで呼び出されます。つまり CURRENT_TIMESTAMP() ではなく CURRENT_TIMESTAMP を使用します。

さまざまなタイプ (localdatetime など) で現時点の時間を取得するには、表「 現在日時の取得に使用する関数 」を参照してください。タイムゾーンコンポーネントが不要な場合、代わりに LOCALTIMESTAMP を使用することをお勧めします。この関数は、 CURRENT_TIMESTAMP よりも多くのデータベースに委任できます。一部のデータベースはタイムゾーン付きの timestamp 型をサポートしていないため、Virtual DataPort は CURRENT_TIMESTAMP 関数をこうしたデータベースに委任できません。

構文

CURRENT_TIMESTAMP:timestamptz

SELECT CURRENT_TIMESTAMP as date_and_time_now
FROM dual();

date_and_time_now

2025年01月22日 10:03:12.186-05:00

EXTRACT

説明

EXTRACT 関数は、 datetime の値から年、月、日、時、分、または秒を抽出します。

構文

EXTRACT ( <part of field> FROM <value> )
  • part of field: 必須。以下のいずれかの値を指定できます。

    • YEAR: 日付の年を返します。

    • MONTH: 日付の月を返します。

    • DAY: 日付の日を返します。

    • HOUR: 日付の時間を返します。

    • MINUTE: 日付の分を返します。

    • SECOND: 日付の秒を返します。

    • MILLISECOND: 日付のミリ秒を返します。

    • QUARTER: 日付の四半期を返します。第 1 四半期は 1、最終四半期は 4 です。

    • WEEK: 年の週番号を返します。年の最初の週が 1 です。

    • DOW: 日曜日 (0) から土曜日 (6) までの曜日を返します。

    • DOY: 年の通産日を返します。年の最初の日が 1 です。

  • value: 必須。日時式。

例 1

SELECT time, EXTRACT(YEAR FROM time) AS year
FROM view

time

year

2021-06-25 19:19:41

2021

2019-01-31 22:59:56

2019

このクエリは、結果のフィールドの列から年を抽出します。

例 2

SELECT sale_date AS sale_date, EXTRACT(ADDDAY(CURRENT_DATE, 1)) AS next_day
FROM view

sale_date

next_day

2020-06-30

1

2021-01-01

2

このクエリは、式によって返された datetime の値の時間を抽出します。

FIRSTDAYOFMONTH

説明

FIRSTDAYOFMONTH 関数は、パラメータとして渡された日時の日フィールドを月の初日まで減算して返します。パラメータとして渡された日時がすでに月の初日の場合は、未変更のままパラメータを返します。

構文

FIRSTDAYOFMONTH( <value:localdate> ):localdate
FIRSTDAYOFMONTH( <value:timestamp> ):timestamp
FIRSTDAYOFMONTH( <value:timestamptz> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
FIRSTDAYOFMONTH( <value:date> ):date
  • value: 必須。

SELECT sale_date, FIRSTDAYOFMONTH(sale_date) FROM v

sale_date

firstdayofmonth

2019-06-29 19:19:41

2019-06-01 19:19:41

2021-01-08 22:59:56

2021-01-01 22:59:56

2021-01-01 22:59:56

2021-01-01 22:59:56

FIRSTDAYOFWEEK

説明

FIRSTDAYOFWEEK 関数は、パラメータとして渡された日時の日フィールドを週の初日になるまで減らして返します。

パラメータとして渡された日時がすでに週の初日である場合は、未変更のままパラメータを返します。

週の初日はビューとクエリのロケールによって異なります。

たとえば、ロケール us_pst (米国太平洋標準時ゾーン) では週の初日は日曜日ですが、 es_euro (スペインのタイムゾーン) では週の初日は月曜日です。

この関数がデータベースに委任された場合、結果は基盤となるデータベースによって異なります。

ビューの [Advanced] ダイアログでビューのロケールを確認できます。詳細については、管理ガイドの「 ロケール構成 」を参照してください。

構文

FIRSTDAYOFWEEK( <value:localdate> ):localdate
FIRSTDAYOFWEEK( <value:timestamp> ):timestamp
FIRSTDAYOFWEEK( <value:timestamptz> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
FIRSTDAYOFWEEK( <value:date> ):date
  • value: 必須。

SELECT time, FIRSTDAYOFWEEK(time)
FROM v

time

firstdayofweek

Wednesday, Jun 29, 2005 19:19:41

Monday, Jun 27, 2005 19:19:41

Monday, Jan 10, 2011 22:59:56

Monday, Jan 10, 2011 22:59:56

2 番目の行では曜日がすでに週の初日であるため、関数の出力は入力と同じになります。

FORMATDATE

説明

FORMATDATE 関数は、指定したパターンを使用して書式設定された日時型を含む文字列を返します。

この関数は、Java の日時書式設定システムに依存しています。Java の日付と時間のパターンについては、「 Virtual DataPort で使用される Java の日付と時刻のパターン 」に記載されています。

構文

FORMATDATE( <datetime pattern:text>, <datetime>, [ <i18n:text> ] ):text
  • datetime pattern: 必須。2 番目のパラメータで渡された日時の書式を設定するために使用されるパターン (日付パターン形式の詳細については、「 日付と時間のパターン文字列 」を参照してください)。

    この関数をデータベースに委任するために、実行エンジンは、パターンを基盤となるデータベースで同等のパターンに変換します。データベースがそのパターンをサポートしていない場合、実行エンジンは関数をデータベースに委任する代わりに実行します。

  • datetime: 必須。書式を設定する日時の値。式の型は、localdate、time、timestamp、timestamptz、または date のいずれかになります。

  • i18n: オプション。ロケール構成。 date_pattern に曜日のパターン (EEE または EEEE) または月の名前 (MMM または MMMM) が含まれる場合に、これら 2 つのエレメントを返すために使用する言語を指定します。

    このパラメータの値は、サーバーのロケールマップのいずれかである必要があります。たとえば、 us_pstus_estgbde などです。

例 1

SELECT date, FORMATDATE('yyyy.MM.dd G ''at'' HH:mm:ss', date) AS
format_date
FROM v

date

format_date

Jun 29, 2005 19:19:41

2005.06.29 AD at 19:19:41

Jan 8, 2011 22:59:56

2011.01.08 AD at 22:59:56

一重引用符で囲まれたテキストは解釈されず ('at' を参照)、出力にそのままコピーされます。

注釈

date_pattern に一重引用符 (') が含まれ、そのパターンも一重引用符で囲まれている場合は、次のようにこれらの引用符を別の一重引用符でエスケープする必要があります。

SELECT formatdate('yyyy.MM.dd G ''at'' HH:mm:ss', CURRENT_TIMESTAMP)

例 2

SELECT date, formatdate('h:mm a', date) AS format_date
FROM v

date

format_date

Jun 29, 2005 19:19:41

7:19 PM

Jan 8, 2011 22:59:56

22:59 PM

例 3

SELECT date, formatdate('yyMMddHHmmss', date) AS format_date
FROM v

date

format_date

Jun 29, 2005 19:19:41

050629191941

Jan 8, 2011 22:59:56

110108225956

例 4

SELECT date, FORMATDATE('MMMM, EEEE dd, yyyy', date, 'us_pst') AS
    format_date
FROM v

date

format_date

Jun 29, 2005 19:19:41

June, Wednesday 29, 2005

Jan 8, 2011 22:59:56

January, Saturday 8, 2011

例 5

SELECT date, FORMATDATE('MMMM, EEEE dd, yyyy', date, 'de') AS
    format_date
FROM v

date

format_date

Jun 29, 2005 19:19:41

Juni, Mittwoch 29, 2005

Jan 8, 2011 22:59:56

Januar, Samstag 08, 2011

例 4 と 5 の唯一の違いはパラメータ i18n です。例 4 では、パラメータは us_pst であるため、この関数は曜日と月の名前を英語で返します。例 5 では、ロケールが de であるため、これらの値をドイツ語で返します。

GETDAY

説明

GETDAY 関数は、指定した日時の「日」フィールドを返します。この関数は、1 ~ 31 の範囲の long データ型を返します。

構文

GETDAY( <value:intervaldaysecond> ):long
GETDAY( <value:localdate> ):long
GETDAY( <value:timestamp> ):long
GETDAY( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETDAY( <value:date> ):long
  • value: 必須。日付の取得元の日時。

SELECT date, getday(date) as day
FROM v;

date

day

Jun 29, 2005 19:19:41

29

Jan 8, 2011 22:59:56

8

GETDAYOFWEEK

説明

GETDAYOFWEEK 関数は、指定した日時の曜日の数値を返します。

週の初日が 1 、最後の日が 7 です。

週の初日はビューとクエリのロケールによって異なります。たとえば、ロケール us_pst (米国太平洋標準時ゾーン) では週の初日は日曜日ですが、 es_euro (スペインのタイムゾーン) では週の初日は月曜日です。

この関数がデータベースに委任された場合、結果は基盤となるデータベースによって異なります。たとえば、Oracle 11g では常に、週の初日は月曜日であるとみなされます。

ビューの [Advanced] ダイアログでビューのロケールを確認できます。詳細については、管理ガイドの「 ロケール構成 」を参照してください。

構文

GETDAYOFWEEK( <value:localdate> ):long
GETDAYOFWEEK( <value:timestamp> ):long
GETDAYOFWEEK( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETDAYOFWEEK( <value:date> ):long
  • value: 必須。

例 1

SELECT CURRENT_DATE AS today, GETDAYOFWEEK(CURRENT_DATE);

today

getdayofweek

2020/12/07

2

例 2

SELECT CURRENT_DATE AS today, GETDAYOFWEEK(CURRENT_DATE)
CONTEXT('i18n' = 'ES_EURO');

today

getdayofweek

2020/12/07

1

例 1 と例 2 の違いは CONTEXT 句に設定されているクエリのロケールです。 i18n パラメータを CONTEXT に追加しない場合、クエリはビューのロケールを使用します。

GETDAYOFYEAR

説明

GETDAYOFYEAR 関数は、その日時の年間通日の数値を返します。

年の初日が 1 です。

構文

GETDAYOFYEAR( <value:localdate> ):long
GETDAYOFYEAR( <value:timestamp> ):long
GETDAYOFYEAR( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETDAYOFYEAR( <value:date> ):long
  • value: 必須。

SELECT TO_LOCALDATE('dd-MM-yyyy', '01-01-2018') AS localdate
     , GETDAYOFYEAR( TO_LOCALDATE('dd-MM-yyyy', '01-01-2013') ) AS day

localdate

day

Jan 1, 2018

1

GETDAYSBETWEEN

説明

GETDAYSBETWEEN 関数は、2 つの日付の間の日数を返します。

両方の日付が同じ日を表す場合は、 0 を返します。

最初のパラメータの方が早い日付の場合は、正の数を返します。

2 番目のパラメータの方が早い日付の場合は、負の数を返します。

構文

GETDAYSBETWEEN( <value 1:localdate>, <value 2:localdate> ):long
GETDAYSBETWEEN( <value 1:timestamp>, <value 2:timestamp> ):long
GETDAYSBETWEEN( <value 1:timestamptz>, <value 2:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETDAYSBETWEEN( <value:date> ):long
  • value 1: 必須。

  • value 2: 必須。

SELECT date1, date2, GETDAYSBETWEEN(date1, date2)
FROM view

date1

date2

getdaysbetween

Jan 1, 2013 0:00:00 AM

Jan 2, 2013 0:00:00 AM

1

Jan 1, 2013 0:00:00 AM

Dec 31, 2013 0:00:00 AM

364

GETHOUR

説明

GETHOUR 関数は、指定した日時の「時」フィールドを返します。この関数は、0 (12:00 A.M.) ~ 23 (11:00 P.M.) の範囲の long データ型を返します。

構文

GETHOUR( <value:intervaldaysecond> ):long
GETHOUR( <value:time> ):long
GETHOUR( <value:timestamp> ):long
GETHOUR( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETHOUR( <value:date> ):long
  • value: 必須。時間の取得元の日時。

SELECT date, gethour(date) as hour
FROM v;

date

hour

Jun 29, 2005 19:20:41

19

GETMILLISECOND

GETMILLISECOND 関数は、指定した日時の「ミリ秒」フィールドを返します。

構文

GETMILLISECOND( <value:intervaldaysecond> ):long
GETMILLISECOND( <value:time> ):long
GETMILLISECOND( <value:timestamp> ):long
GETMILLISECOND( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETMILLISECOND( <value:date> ):long
  • value: 必須。

GETMINUTE

説明

GETMINUTE 関数は、指定した日時の「分」フィールドを返します。この関数は、0 ~ 59 の範囲の long 型の値を返します。

構文

GETMINUTE( <value:intervaldaysecond> ):long
GETMINUTE( <value:time> ):long
GETMINUTE( <value:timestamp> ):long
GETMINUTE( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETMINUTE( <value:date> ):long
  • value: 必須。分の取得元の日時。

SELECT date, getMinute(date) as minute
FROM v;

date

minute

Jun 29, 2005 19:20:41

20

GETMONTH

説明

GETMONTH 関数は、指定した日時の月の数値を返します。この関数は、1 (1 月) ~ 12 (12 月) の範囲の long データ型を返します。

構文

GETMONTH( <value:intervalyearmonth> ):long
GETMONTH( <value:localdate> ):long
GETMONTH( <value:timestamp> ):long
GETMONTH( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETMONTH( <value:date> ):long
  • datetime: 必須。月の数値の取得元の日時。

SELECT date, getMonth(date) as month
FROM v

date

month

Jun 29, 2005 19:20:41

6

GETMONTHSBETWEEN

説明

GETMONTHSBETWEEN 関数は、2 つの日時の間の月数を返します。

両方の日時が同じ月を表す場合は、0 を返します。

最初のパラメータの方が早い日付の場合は、正の数を返します。

2 番目のパラメータの方が早い日付の場合は、負の数を返します。

構文

GETMONTHSBETWEEN( <value 1:localdate>, <value 2:localdate> ):long
GETMONTHSBETWEEN( <value 1:timestamp>, <value 2:timestamp> ):long
GETMONTHSBETWEEN( <value 1:timestamptz>, <value 2:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETMONTHSBETWEEN( <value 1:date>, <value 2:date> ):long
  • value 1: 必須。

  • value 1: 必須。

SELECT date1, date2, GETMONTHSBETWEEN(date1, date2)

date1

date2

getmonthsbetween

Jan 1, 2013 0:00:00 AM

Feb 1, 2013 0:00:00 AM

1

Jan 1, 2013 0:00:00 AM

Dec 31, 2013 0:00:00 AM

11

Jan 1, 2013 0:00:00 AM

Jan 15, 2013 0:00:00 AM

0

GETQUARTER

説明

GETQUARTER 関数は、指定した日時の年の四半期を返します。

結果は 1 ~ 4 の範囲です。1 は年の第 1 四半期 (1 月~ 3 月)、2 は第 2 四半期 (4 月~ 6 月) のようになります。

構文

GETQUARTER( <value:localdate> ):long
GETQUARTER( <value:timestamp> ):long
GETQUARTER( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETQUARTER( <value:date> ):long
  • datetime: 必須。四半期の取得元の日時。

SELECT date, GETQUARTER(date) as quarter
FROM v

date

quarter

Jun 29, 2015 19:20:41

2

Mar 1, 2015 00:00:00

1

GETSECOND

説明

GETSECOND 関数は、指定した日時の「秒」フィールドを返します。この関数は、0 ~ 59 の範囲の long 型の値を返します。

構文

GETSECOND( <value:intervaldaysecond> ):long
GETSECOND( <value:time> ):long
GETSECOND( <value:timestamp> ):long
GETSECOND( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETSECOND( <value:date> ):long
  • value: 必須。秒の取得元の日時。

SELECT date, GETSECOND(date) as second
FROM v

date

second

Jun 29, 2005 19:20:41

41

GETTIMEFROMMILLIS

説明

GETTIMEFROMMILLIS 関数は、 エポック と呼ばれる標準基本時間 (1970 年 1 月 1 日、00:00:00 GMT) 以降の指定したミリ秒数を表す「タイムゾーン付きタイムスタンプ」を返します。

構文

GETTIMEFROMMILLIS( <value:long> ):timestamptz
  • value: 必須。

SELECT longsample, gettimefrommillis(longsample) as date
FROM v

longsample

date

0

Jan 01, 1970 01:00:00+01:00

711745200000

Jul 21, 1992 21:00:00+02:00

GETTIMEINMILLIS

説明

GETTIMEINMILLIS 関数は、1970 年 1 月 1 日 00:00:00 GMT からパラメータとして渡された日時までのミリ秒数を返します。

日時が 1970 年より前の場合は、負の数を返します。

構文

GETTIMEINMILLIS( <value:localdate> ):long
GETTIMEINMILLIS( <value:timestamp> ):long
GETTIMEINMILLIS( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETTIMEINMILLIS( <value:date> ):long
  • value: 必須。

SELECT date, getTimeInMillis(date) as milliseconds
FROM v

date

milliseconds

Jun 29, 2005 19:20:41

1120098041000

GETWEEK

説明

GETWEEK 関数は、指定した日時の年の通算週を返します。

年の最初の週が 1 です。ISO8601 標準で定義されているように、年の最初の週は、少なくとも 4 日が年に含まれる週です。このような定義の結果、年によっては、年の 1 日目が前年に属するとみなされる場合があります。

構文

GETWEEK( <value:localdate> ):long
GETWEEK( <value:timestamp> ):long
GETWEEK( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETWEEK( <value:date> ):long
  • value: 必須。年の通算週の取得元の日時。

SELECT date, GETWEEK(date) as week
FROM v

Date

week

Jan 01, 2016 0:00:00

53

Jan 10, 2016 0:00:00

1

Jan 11, 2016 0:00:00

2

GETWEEKSBETWEEN

説明

GETWEEKSBETWEEN 関数は、2 つの日付の間の週数を返します。

両方の日付が同じ週を表す場合は、 0 を返します。

最初のパラメータの方が早い日付の場合は、正の数を返します。

2 番目のパラメータの方が早い日付の場合は、負の数を返します。

構文

GETWEEKSBETWEEN( <value 1:localdate>, <value 2:localdate> ):long
GETWEEKSBETWEEN( <value 1:timestamp>, <value 2:timestamp> ):long
GETWEEKSBETWEEN( <value 1:timestamptz>, <value 2:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETWEEKSBETWEEN( <value:date> ):long
  • value 1: 必須。

  • value 2: 必須。

SELECT date1, date2, GETWEEKSBETWEEN(date1, date2)
FROM view

date1

date2

getweeksbetween

Jan 1, 2024 0:00:00 AM

Jan 28, 2024 0:00:00 AM

4

Jul 21, 2024 0:00:00 AM

Jul 3, 2024 0:00:00 AM

-2

GETYEAR

説明

GETYEAR 関数は、指定した日時の「年」フィールドを返します。

構文

GETYEAR( <value:intervalyearmonth> ):long
GETYEAR( <value:localdate> ):long
GETYEAR( <value:timestamp> ):long
GETYEAR( <value:timestamptz> ):long

; Deprecated signature because it uses the date (deprecated) type
GETYEAR( <value:date> ):long
  • value: 必須。年の取得元の日時。

SELECT date, GETYEAR(date) as year
FROM Dual();

date

year

Jun 29, 2005 19:20:41

2005

LASTDAYOFMONTH

説明

LASTDAYOFMONTH 関数は、パラメータとして渡された日時の日フィールドを月の最終日まで増やして返します。パラメータとして渡された日時がすでに月の最終日の場合は、未変更のままパラメータを返します。

構文

LASTDAYOFMONTH( <value:localdate> ):localdate
LASTDAYOFMONTH( <value:timestamp> ):timestamp
LASTDAYOFMONTH( <value:timestamptz> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
LASTDAYOFMONTH( <value:date> ):date
  • value: 必須。

SELECT time, LASTDAYOFMONTH(time)
FROM v

time

lastdayofmonth

Jun 30, 2005 19:19:41

Jun 30, 2005 19:19:41

Feb 12, 2011 22:59:56

Feb 28, 2011 22:59:56

最初の行では日がすでに月の最終日であるため、関数の出力は入力と同じになります。

LASTDAYOFWEEK

説明

LASTDAYOFWEEK 関数は、パラメータとして渡された日時の日フィールドを週の最終日になるまで増やして返します。

パラメータとして渡された日時がすでに週の最終日である場合は、未変更のままパラメータを返します。

週の最終日はビューとクエリのロケールによって異なります。

たとえば、ロケール us_pst (米国太平洋標準時ゾーン) では週の最終日は土曜日ですが、 es_euro (スペインのタイムゾーン) では週の最終日は日曜日です。

この関数がデータベースに委任された場合、結果は基盤となるデータベースによって異なります。

ビューの [Advanced] ダイアログでビューのロケールを確認できます。詳細については、管理ガイドの「 ロケール構成 」を参照してください。

構文

LASTDAYOFWEEK( <value:localdate> ):localdate
LASTDAYOFWEEK( <value:timestamp> ):timestamp
LASTDAYOFWEEK( <value:timestamptz> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
LASTDAYOFWEEK( <value:date> ):date
  • value: 必須。

SELECT time, LASTDAYOFWEEK(time)
FROM v

time

lastdayofweek

Thursday, Jun 30, 2005 19:19:41

Sunday, Jul 03, 2005 19:19:41

Saturday, Dec 31, 2011 22:59:56

Sunday, Jan 1, 2012 22:59:56

Sunday, Jul 03, 2005 19:19:41

Sunday, Jul 03, 2005 19:19:41

LOCALTIME

説明

LOCALTIME 関数は、クエリタイムゾーンの現在の時刻を表す time 型の値を返します。

さまざまなタイプ (localdatetime など) で現時点の時間を取得するには、表「 現在日時の取得に使用する関数 」を参照してください

この関数は括弧なしで呼び出します。つまり LOCALTIME() ではなく LOCALTIME を使用します。

構文

LOCALTIME:date

SELECT LOCALTIME as time_now
FROM dual();

time_now

04:20:00.687

LOCALTIMESTAMP

説明

LOCALTIMESTAMP 関数は、クエリタイムゾーンの現在の日付と時刻を表す timestamp 型の値を返します。

さまざまなタイプ (localdatetime など) で現時点の時間を取得するには、表「 現在日時の取得に使用する関数 」を参照してください

この関数は括弧なしで呼び出されます。つまり LOCALTIMESTAMP() ではなく LOCALTIMESTAMP を使用します。

構文

LOCALTIMESTAMP:timestamp

SELECT LOCALTIMESTAMP as date_and_time_now
FROM dual();

date_and_time_now

2025-01-22 04:20:00.000

MAX

付録「 MAX 」を参照してください。

MIN

付録「 MIN 」を参照してください。

NEXTWEEKDAY

説明

NEXTWEEKDAY 関数は、この日時の日フィールドをパラメータ weekDay で指定した曜日まで増やして返します。

パラメータ datetime がすでに weekDay の日付を表している場合、この関数は日付を翌週の同じ曜日まで増やします。

曜日は、日曜日 = 0、月曜日 = 1、火曜日 = 2 のようになります。

構文

NEXTWEEKDAY( <value:localdate>, <week day:int> ):localdate
NEXTWEEKDAY( <value:timestamp>, <week day:int> ):timestamp
NEXTWEEKDAY( <value:timestamptz>, <week day:int> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
NEXTWEEKDAY( <value:date>, <week day:int> ):date
  • value: 必須。日時式。

  • week day: 必須。日時を増やす対象の曜日。

SELECT time, NEXTWEEKDAY(time, 3)
FROM v

time

nextweekday

Thursday, Jun 30, 2005 19:19:41

Wednesday, Jul 6, 2005 19:19:41

Monday, Feb 7, 2011 22:59:56

Feb, Wed 9, 2011 22:59:56

Wednesday, Feb 9, 2011 9:37:02

Wednesday, Feb 16, 2011 9:37:02

NOW

説明

NOW 関数は、現在の「タイムゾーン付きのタイムスタンプ」を表す timestamptz 型の値を返します。

NOW()CURRENT_TIMESTAMP と同じです。 CURRENT_TIMESTAMP は SQL 標準での関数の名前です。

PREVIOUSWEEKDAY

説明

PREVIOUSWEEKDAY 関数は、この日時の日フィールドをパラメータ weekDay で指定した曜日まで減らして返します。

パラメータ datetime がすでに weekDay の日付を表している場合、この関数は日時を前週の同じ曜日まで減らします。

曜日は、日曜日 = 0、月曜日 = 1、火曜日 = 2 のようになります。

構文

PREVIOUSWEEKDAY( <value:localdate>, <week day:int> ):localdate
PREVIOUSWEEKDAY( <value:timestamp>, <week day:int> ):timestamp
PREVIOUSWEEKDAY( <value:timestamptz>, <week day:int> ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
PREVIOUSWEEKDAY( <value:date>, <week day:int> ):date
  • value: 必須。日時式。

  • week day: 必須。日時を減らす対象の曜日。

SELECT time, previousweekday(time, 2)
FROM v

time

previousweekday

Thursday, Jun 30, 2005 19:19:41

Tuesday, Jun 28, 2005 19:19:41

Monday, Feb 7, 2011 22:59:56

Tuesday, Feb 1, 2011 22:59:56

Tuesday, Jan 4, 2011 9:37:02

Tuesday, Dec 28, 2010 9:37:02

SUBTRACT

SUBTRACT 」を参照してください。

TO_DATE

説明

TO_DATE 関数は、特定の書式の日時を含む text 値を、この日付を表す date 型の値に変換します。

重要

この関数は非推奨になっており、Denodo の次期メジャーバージョンで削除される可能性があるため、新しいプロジェクトで使用しないようにしてください。非推奨となっている理由は、最初の入力パラメータが同じく非推奨の date 型であるためです。代わりに、 TO_LOCALDATETO_TIMETO_TIMESTAMP 、または TO_TIMESTAMPTZ のいずれかを使用してください。日時値と関数の詳細については、『VQL ガイド』の「 日付、タイムスタンプ、間隔のデータ型 」を参照してください。

非推奨のすべての機能のリストについては、「 Denodo Platform で廃止された機能 」のセクションを参照してください。

構文

TO_DATE( <date pattern:text>, <value:text> [, <i18n:text> ] [, <timestamp:boolean> ] ):date
  • date pattern: 必須。 value の日時の書式を記述するパターン。Java クラス java.text.SimpleDataFormat で定義されている構文に従います (詳細については、「 日付と時間のパターン文字列 」を参照してください)。

    この関数をデータベースに委任するために、Virtual DataPort は、パターンを基盤となるデータベースで同等のパターンに変換します。データベースがそのパターンをサポートしていない場合、Virtual DataPort の実行エンジンは関数をデータベースに委任する代わりに実行します。

  • value: 必須。パラメータ datePattern のパターンに従った日付を含む文字列。

  • i18n: オプション。ロケール構成。 date pattern に曜日 (EEE または EEEE) または月の名前 (MMM または MMMM) のパターンが含まれる場合、このパラメータは、関数がこれらの値を予期する言語を示します。たとえば、 value にドイツ語の月の名前が含まれる場合、データベースのロケールも de でないかぎり、このパラメータの値は de にする必要があります。

    このパラメータの値は、サーバーのロケールマップのいずれかである必要があります。たとえば、 us_pstus_estgbde などです。

  • timestamp: オプション。 false の場合、この関数は、時刻を表すフィールド (時、分、秒、ミリ秒) に 0 を設定します。このパラメータに true を渡した場合は、渡さない場合と同じ結果になります。

例 1

SELECT TO_DATE('M dd yyyy HH:mm:ss', '3 05 2020 21:17:05')
FROM Dual();

to_date

2020-03-05 21:17:05-08:00

例 2

SELECT TO_DATE ('yyyyMMddHHmmss', '20200701102030')
FROM Dual();

to_date

2020-07-01 10:20:30-07:00

例 3

SELECT TO_DATE('yyyy-MM-dd''T''HH:mm:ss.SSS', '2020-07-04T12:08:56.235')
FROM Dual();

to_date

2020-07-04 12:08:56.235-07:00

例 4

SELECT TO_DATE('yyyy-MM-dd''T''HH:mm:ss.SSS', '2020-07-04T12:08:56.235', false)
FROM Dual();

to_date

2020-07-04 00:00:00-07:00

例 3 と例 4 に関する注意: Java クラス java.text.SimpleDataFormat で定義されているように、日付パターンのリテラルである部分は一重引用符で囲む必要があります。前述の 2 つの例では T です。ただし、Virtual DataPort リテラルでは一重引用符は特殊文字のため、一重引用符をもう 1 つ付けてエスケープする必要があります。このような理由から、例 3 と例 4 の日付パターンでは ''T'' が使用されています。

例 5

SELECT date_string, TO_DATE('MMMM, EEEE dd, yyyy', date_string, 'de')
FROM v

date_string

to_date

Juni, Mittwoch 29, 2019

2019-06-29 00:00:00-07:00

Januar, Samstag 08, 2021

2021-01-08 00:00:00-08:00

この例では、パラメータ i18nde であるため、この関数は date_string の月の名前 (MMM) と曜日の名前 (EEEE) はドイツ語であると予期します。

TO_LOCALDATE

説明

TO_LOCALDATE 関数は、特定の書式の日時を含む text 値を、この日時を表す localdate 型の値に変換します。

構文

TO_LOCALDATE( <localdate pattern:text>, <value:text> [, <language:text> ] ):localdate
  • localdate pattern: 必須。 value の日付と時間の書式を記述するパターン。Java クラス java.text.SimpleDataFormat で定義されている構文に従います (詳細については、「 日付と時間のパターン文字列 」を参照してください)。

    この関数をデータベースに委任するために、Virtual DataPort は、パターンを基盤となるデータベースで同等のパターンに変換します。データベースがそのパターンをサポートしていない場合、Virtual DataPort の実行エンジンは関数をデータベースに委任する代わりに実行します。

  • value: 必須。パラメータ localdate Pattern のパターンに従ったローカル日付を含む文字列。

  • language: オプション。ロケール構成。 localdate pattern に曜日 (EEE または EEEE) または月の名前 (MMM または MMMM) のパターンが含まれる場合、このパラメータは、関数がこれらの値を予期する言語を示します。たとえば、 value にドイツ語の月の名前が含まれる場合、このパラメータの値は de にする必要があります。

    このパラメータの値は、Java 言語の名前の 1 つでなければなりません。

例 1

SELECT TO_LOCALDATE ('yyyyMMdd', '20200701')
FROM Dual();

to_localdate

2020-07-01

例 2

SELECT TO_LOCALDATE('M dd yyyy HH:mm:ss', '3 05 2020 21:17:05')
FROM Dual();

to_localdate

2020-03-05

例 3

SELECT TO_LOCALDATE('yyyy-MM-dd''T''HH:mm:ss.SSS', '2020-07-04T12:08:56.235')
FROM Dual();

to_localdate

2020-07-04

注釈

Java クラス java.text.SimpleDataFormat で定義されているように、日付パターンのリテラルである部分は一重引用符で囲む必要があります。

この例では、 T です。ただし、Virtual DataPort リテラルでは一重引用符は特殊文字であるため、一重引用符をもう 1 つ付けてエスケープする必要があります。このような理由から、日付パターンでは ''T'' が使用されています。

例 4

SELECT date_string, TO_LOCALDATE('MMMM, EEEE dd, yyyy', date_string, 'de')
FROM v

date_string

to_localdate

Juni, Mittwoch 29, 2005

Wed Jun 29 2005

Januar, Samstag 08, 2011

Sat Jan 08 2011

この例では、パラメータ languagede であるため、この関数は date_string の月の名前 (MMM) と曜日の名前 (EEEE) はドイツ語であると予期します。

TO_TIME

説明

TO_TIME 関数は、特定の書式の日時を含む text 値を、この日時の時刻部分を表す time 型の値に変換します。

構文

TO_TIME( <time pattern:text>, <value:text> [, <language:text> ] ):time
  • time pattern: 必須。 value の日付と時間の書式を記述するパターン。Java クラス java.text.SimpleDataFormat で定義されている構文に従います (詳細については、「 日付と時間のパターン文字列 」を参照してください)。

    この関数をデータベースに委任するために、Virtual DataPort は、パターンを基盤となるデータベースで同等のパターンに変換します。データベースがそのパターンをサポートしていない場合、Virtual DataPort の実行エンジンは関数をデータベースに委任する代わりに実行します。

  • value: 必須。パラメータ time pattern のパターンに従った日時を含む文字列。

  • language: オプション。ロケール構成。 time pattern に曜日 (EEE または EEEE) または月の名前 (MMM または MMMM) のパターンが含まれる場合、このパラメータは、関数がこれらの値を予期する言語を示します。たとえば、 value にドイツ語の月の名前が含まれる場合、このパラメータの値は de にする必要があります。

    このパラメータの値は、Java 言語の名前の 1 つでなければなりません。

例 1

SELECT TO_TIME ('HHmmss', '102030')
FROM Dual();

to_time

10:20:30

例 2

SELECT TO_TIME('M dd yyyy HH:mm:ss', '3 05 2010 21:17:05')
FROM Dual();

to_time

21:17:05

例 3

SELECT TO_TIME('yyyy-MM-dd''T''HH:mm:ss.SSS', '2001-07-04T12:08:56.235')
FROM Dual();

to_time

12:08:56.235

注釈

Java クラス java.text.SimpleDataFormat で定義されているように、日付パターンのリテラルである部分は一重引用符で囲む必要があります。

この例では、 T です。ただし、Virtual DataPort リテラルでは一重引用符は特殊文字であるため、一重引用符をもう 1 つ付けてエスケープする必要があります。このような理由から、日付パターンでは ''T'' が使用されています。

TO_TIMESTAMP

説明

TO_TIMESTAMP 関数は、特定の書式の日時を含む text 値を、この日時を表す timestamp 型の値に変換します。

構文

TO_TIMESTAMP( <timestamp pattern:text>, <value:text> [, <language:text> ] ):timestamp
  • timestamp pattern: 必須。 value の日付と時間の書式を記述するパターン。Java クラス java.text.SimpleDataFormat で定義されている構文に従います (詳細については、「 日付と時間のパターン文字列 」を参照してください)。

    この関数をデータベースに委任するために、Virtual DataPort は、パターンを基盤となるデータベースで同等のパターンに変換します。データベースがそのパターンをサポートしていない場合、Virtual DataPort の実行エンジンは関数をデータベースに委任する代わりに実行します。

  • value: 必須。パラメータ timestamp pattern のパターンに従った日時を含む文字列。

  • language: オプション。ロケール構成。 timestamp pattern に曜日 (EEE または EEEE) または月の名前 (MMM または MMMM) のパターンが含まれる場合、このパラメータは、関数がこれらの値を予期する言語を示します。たとえば、 value にドイツ語の月の名前が含まれる場合、このパラメータの値は de にする必要があります。

    このパラメータの値は、Java 言語の名前の 1 つでなければなりません。

例 1

SELECT TO_TIMESTAMP('M dd yyyy HH:mm:ss', '3 05 2020 21:17:05')
FROM Dual();

to_timestamp

2020-03-05 21:17:05

例 2

SELECT TO_TIMESTAMP ('yyyyMMddHHmmss', '20200701102030')
FROM Dual();

to_timestamp

2020-07-01 10:20:30

例 3

SELECT TO_TIMESTAMP('yyyy-MM-dd''T''HH:mm:ss.SSS', '2021-07-04T12:08:56.235')
FROM Dual();

to_timestamp

2021-07-04 12:08:56.235

例 4

SELECT date_string, TO_TIMESTAMP('MMMM, EEEE dd, yyyy', date_string, 'de')
FROM v

date_string

to_timestamp

Juni, Mittwoch 29 01:24:58, 2005

Wed Jun 29 01:24:58.000 2005

Januar, Samstag 08 03:15:01, 2011

Sat Jan 08 03:15:01.000 2011

この例では、パラメータ languagede であるため、この関数は date_string の月の名前 (MMM) と曜日の名前 (EEEE) はドイツ語であると予期します。

TO_TIMESTAMPTZ

説明

TO_TIMESTAMPTZ 関数は、特定の書式の日時を含む text 値を、この日時を表す timestamptz 型の値に変換します。

構文

TO_TIMESTAMPTZ( <timestamptz pattern:text>, <value:text> [, <language:text> ] ):timestamptz
  • timestamptz pattern: 必須。 value の日付と時間の書式を記述するパターン。Java クラス java.text.SimpleDataFormat で定義されている構文に従います (詳細については、「 日付と時間のパターン文字列 」を参照してください)。

    この関数をデータベースに委任するために、Virtual DataPort は、パターンを基盤となるデータベースで同等のパターンに変換します。データベースがそのパターンをサポートしていない場合、Virtual DataPort の実行エンジンは関数をデータベースに委任する代わりに実行します。

  • value: 必須。パラメータ timestamptz Pattern のパターンに従った日時を含む文字列。

  • language: オプション。ロケール構成。 timestamptz pattern に曜日 (EEE または EEEE) または月の名前 (MMM または MMMM) のパターンが含まれる場合、このパラメータは、関数がこれらの値を予期する言語を示します。たとえば、 value にドイツ語の月の名前が含まれる場合、このパラメータの値は de にする必要があります。

    このパラメータの値は、Java 言語の名前の 1 つでなければなりません。

例 1

SELECT TO_TIMESTAMPTZ('M dd yyyy HH:mm:ss', '3 05 2021 21:17:05')
FROM Dual();

to_timestamptz

2021-03-05 21:17:05-08:00

例 2

SELECT TO_TIMESTAMPTZ ('yyyyMMddHHmmss', '20200701102030')
FROM Dual();

to_timestamptz

Thu Jul 01 10:20:30.000 2010 +02:00

例 3

SELECT TO_TIMESTAMPTZ('yyyy-MM-dd''T''HH:mm:ss.SSS', '2001-07-04T12:08:56.235')
FROM Dual();

to_timestamptz

2020-07-01 10:20:30-07:00

例 4

SELECT date_string, TO_TIMESTAMPTZ('MMMM, EEEE dd, yyyy', date_string, 'de')
FROM v

date_string

to_timestamptz

Juni, Mittwoch 29 01:24:58, 2005

Wed Jun 29 01:24:58.000 2005 +02:00

Januar, Samstag 08 03:15:01, 2011

Sat Jan 08 03:15:01.000 2011 +01:00

この例では、パラメータ languagede であるため、この関数は date_string の月の名前 (MMM) と曜日の名前 (EEEE) はドイツ語であると予期します。

TRUNC

説明

TRUNC 関数は、パラメータとして渡された日付を特定の単位に切り詰めて返します。

この関数の構文は、Oracle データベースの関数 TRUNC(date) と同じです。パラメータ pattern の構文も同じです。

構文

TRUNC( <value:localdate> [, <pattern:text> ] ):localdate
TRUNC( <value:time> [, <pattern:text> ] ):time
TRUNC( <value:timestamp> [, <pattern:text> ] ):timestamp
TRUNC( <value:timestamptz> [, <pattern:text> ] ):timestamptz

; Deprecated signature because it uses the date (deprecated) type
TRUNC( <value:date> [, <pattern:text> ] ):date
  • value: 必須。切り詰める日時。

  • pattern: datetime は、このパラメータで指定された単位に切り詰められます。 pattern が指定されていない場合、 datetime は最も近い日付に切り詰められます。次の表に、このパラメータに指定可能な値を示します。

TRUNC 関数: pattern パラメータの値

パターン

切り詰める単位

CC SCC

世紀

SYYYY YYYY YEAR SYEAR YYY YY Y

IYYY IYY IY I

ISO 年

Q

四半期

MONTH MON MM RM

WW

年の初日と同じ曜日

IW

ISO 年の初日と同じ曜日

W

月の初日と同じ曜日

DDD DD J

DAY DY D

週の開始日

HH HH12 HH24

MI

例 1

SELECT sale_date, TRUNC(sale_date)
FROM v

sale_date

trunc

2021-06-29 19:19:41

2021-06-29 00:00:00

2021-01-08 22:59:56

2021-01-08 00:00:00

パラメータ pattern が存在しないため、日付は日に切り詰められます。

例 2

SELECT sale_date, TRUNC(sale_date, 'MONTH')
FROM v

sale_date

trunc

2021-06-29 19:19:41

2021-06-01 00:00:00

2021-01-08 22:59:56

2021-01-01 22:59:56

例 3

SELECT sale_date, TRUNC(sale_date, 'Q')
FROM v

sale_date

trunc

2021-06-29 19:19:41

2021-04-01 00:00:00

2021-01-08 22:59:56

2021-01-01 00:00:00

パターン Q は、日付を四半期に切り詰めることを意味します。

Add feedback