3.5.3. 日付および時刻の関数


日付、時刻、またはタイムスタンプで日時関数が戻るか、または操作します。

日時関数は、java.text.SimpleDateFormat クラス内で確立された規則を使用して、これらの関数と共に使用できる形式を定義します。このクラスがどのように形式を定義するかについては、SimpleDateFormat の Javadocs を参照してください。

Expand
機能定義データタイプ制約

CURDATE() CURRENT_DATE[()]

現在の日付を返します。ユーザーコマンド内のすべての呼び出しに同じ値が返されます。

日付を返します。

CURTIME()

現在の時間を返します。ユーザーコマンド内のすべての呼び出しに同じ値を返します。CURRENT_TIME も参照してください。

時間を返します。

NOW()

現在のタイムスタンプ(ミリ秒の精度あり)を返します。ユーザーコマンドまたは手順命令のすべての呼び出しに同じ値を返します。CURRENT_TIMESTAMP も参照してください。

タイムスタンプを返します。

CURRENT_TIME[(precision)]

現在の時間を返します。ユーザーコマンド内のすべての呼び出しに同じ値を返します。Data Virtualization の時間タイプは少秒をトラッキングしないため、精度の引数が事実上無視されます。精度がない場合、CURTIME()と同じです。

時間を返します。

CURRENT_TIMESTAMP[(precision)]

現在のタイムスタンプ(ミリ秒の精度あり)を返します。ユーザーコマンドまたは手順命令で、同じ精度を持つすべての呼び出しに同じ値を返します。精度がない場合、NOW()と同じです。現在のタイムスタンプには、デフォルトでミリ秒の精度しかないため、精度を 3 よりも大きく設定すると効果はありません。

タイムスタンプを返します。

DAYNAME(x)

デフォルトのロケールで日名を返します。

X in {date, timestamp}, returns string

DAYOFMONTH(x)

戻る日

X in {date, timestamp}(整数を返します)

DAYOFWEEK(x)

曜日を返します(日: 平日=1, Saturday=7)

X in {date, timestamp}(整数を返します)

DAYOFYEAR(x)

日付番号を年で返します。

X in {date, timestamp}(整数を返します)

EPOCH(x)

マイクロ秒の精度を持つ unix エポックからの経過時間(秒単位)

X in {date, timestamp}, returns double

EXTRACT(YEAR|MONTH|DAY |HOUR|MINUTE|SECOND|QUARTER|EPOCH FROM x)

日付値 x から指定のフィールド値を返します。関連する YEAR、MONTH、DAYOFMONTH、HOUR、MINUTE、SECOND、QUARTER、EPOCH 関数と同じ結果を生成します。SQL 仕様では、TIMEZONE_HOUR および TIMEZONE_MINUTE を抽出ターゲットとして許可します。Data Virtualization では、日付の値はすべてサーバーのタイムゾーンになります。

X in {date, time, timestamp}, epoch returns double, other return integer

FORMATDATE(x, y)

y 形式を使用した日付 x の形式。

X は date、y は文字列で、文字列を返します。

FORMATTIME(x, y)

y 形式を使用した時間 x のフォーマット。

X は時間で、y は文字列を返します。文字列を返します。

FORMATTIMESTAMP(x, y)

y 形式を使用したタイムスタンプ x の形式。

X はタイムスタンプで、y は文字列を返します。文字列を返します。

FROM_MILLIS (millis)

指定のミリ秒の Timestamp 値を返します。

長い UTC タイムスタンプ(ミリ秒単位)

FROM_UNIXTIME (unix_timestamp)

デフォルトの yyyy/mm/dd hh:mm:ss で、Unix タイムスタンプを String 値として返します。

長い Unix タイムスタンプ(秒単位)

hOUR(x)

時間を返します(通常の 24 時間形式)。

X in {time, timestamp}(整数を返します)

MINUTE(x)

分を返します。

X in {time, timestamp}(整数を返します)

MODIFYTIMEZONE(timestamp、startTimeZone、endTimeZone)

開始タイムゾーンと終了タイムゾーン間で異なる値に調整された受信タイムスタンプに基づいてタイムスタンプを返します。  サーバーが GMT-6 にある場合は、Fixzone({ts '2006-01-10 04:00:00.0'},'GMT-7', 'GMT-8')はタイムスタンプ {ts '2006-01-10 05:00:00.0'} を返します。この値は、GMT-7 と GMT-8 の相違点を補正するために 1 時間前に調整されています。

startTimeZone および endTimeZone は文字列で、タイムスタンプを返します。

MODIFYTIMEZONE(timestamp, endTimeZone)

modifytimezone(timestamp, startTimeZone, endTimeZone)と同様にタイムスタンプを返しますが、startTimeZone がサーバープロセスと同じであると仮定します。

タイムスタンプはタイムスタンプで、endTimeZone は文字列で、タイムスタンプを返します。

MONTH(x)

戻る月。

X in {date, timestamp}(整数を返します)

MONTHNAME(x)

デフォルトのロケールで月を返します。

X in {date, timestamp}, returns string

PARSEDATE(x, y)

y 形式を使用して、x から date を解析します。

X, y in {string}, returns date

PARSETIME(x, y)

y 形式を使用して、x からの時間を解析します。

X, y in {string}, returns time

PARSETIMESTAMP(x,y)

y 形式を使用して、x からのタイムスタンプを解析します。

X, y in {string}, returns timestamp

QUARTER(x)

送金を返します。

X in {date, timestamp}(整数を返します)

SECOND(x)

戻り値の秒数。

X in {time, timestamp}(整数を返します)

TIMESTAMPCREATE(date, time)

日付と時刻からタイムスタンプを作成します。

日付 in {date}, time in {time}, return timestamp

TO_MILLIS (timestamp)

UTC タイムスタンプをミリ秒単位で返します。

タイムスタンプ値

UNIX_TIMESTAMP (unix_timestamp)

長い Unix タイムスタンプ(秒単位)を返します。

yyyy/mm/dd hh:mm:ss のデフォルト形式の unix_timestamp 文字列

WEEK(x)

1 ~53 年で週を返します。カスタマイズ情報は、『 管理者ガイド』の「 システムプロパティー 」を参照してください。

X in {date, timestamp}(整数を返します)

YEAR(x)

4 桁の年を返します。

X in {date, timestamp}(整数を返します)

Timestampadd

指定の間隔をタイムスタンプに追加します。

構文

TIMESTAMPADD(interval, count, timestamp)
Copy to Clipboard Toggle word wrap

引数

Expand
名前説明

interval

日時間隔の単位は、以下のキーワードのいずれかになります。

  • SQL_TSI_FRAC_SECOND - 分秒(秒)
  • SQL_TSI_SECOND - seconds
  • SQL_TSI_MINUTE - 分
  • SQL_TSI_HOUR - 時間
  • SQL_TSI_DAY - days
  • SQL_TSI_WEEK - 初日に日曜日を使用する週
  • SQL_TSI_MONTH - months
  • SQL_TSI_QUARTER - 最初の月が 3 ヶ月という月(3 カ月)
  • SQL_TSI_YEAR - 年

count

タイムスタンプに追加するユニットの長い数または整数数。負の値は、その単位数に減算します。Long 値は TIMESTAMPDIFF とのシンボリメトに許可されますが、有効な範囲は整数値に制限されます。

timestamp

日時式。

SELECT TIMESTAMPADD(SQL_TSI_MONTH, 12,'2016-10-10')
SELECT TIMESTAMPADD(SQL_TSI_SECOND, 12,'2016-10-10 23:59:59')
Copy to Clipboard Toggle word wrap

Timestampdiff

2 つのタイムスタンプが長い値を返す間に超過した日付部分の間隔を計算します。

構文

TIMESTAMPDIFF(interval, startTime, endTime)
Copy to Clipboard Toggle word wrap

引数

Expand
名前説明

interval

日時間隔の単位。Timestampadd で使用されるキーワードと同じです。

startTime

日時式。

endTime

日時式。

SELECT TIMESTAMPDIFF(SQL_TSI_MONTH,'2000-01-02','2016-10-10')
SELECT TIMESTAMPDIFF(SQL_TSI_SECOND,'2000-01-02 00:00:00','2016-10-10 23:59:59')
SELECT TIMESTAMPDIFF(SQL_TSI_FRAC_SECOND,'2000-01-02 00:00:00.0','2016-10-10 23:59:59.999999')
Copy to Clipboard Toggle word wrap

注記

(endTime > startTime)の場合は、負の値以外の数値が返されます。(endTime < startTime)の場合は、正の値以外の数値が返されます。日付の部分の差異は、タイムスタンプの近づく方法に関係なくカウントされます。たとえば、「2000-01-02 00:00:00.0」は「2000-01-01 23:59:59.999999」よりも 1 時間前に考慮されます。

互換性の問題

  • SQL では、Timestampdiff は通常整数を返します。ただし、Data Virtualization の実装は長く返されます。プッシュされたタイムスタンプdiff から整数値が整数の範囲から外すことが予想されると例外が発生することがあります。
  • Teiid 8.2 以前のバージョンでのタイムスタンプの diff の実装は、正規間隔の概算数(1 年で 365 日、月に 30 日、30 日単位など)に基づいた値を返します。たとえば、2013-03-24 から 2013-04-01 の月間における差異は 0 でしたが、相互にまたがる日付部分を基にしたのは 1 です。後方互換性に関する情報は、『Adminstrator 's Guide』のSystem Properties 」を参照してください。

文字列からの日付データタイプの解析

データ仮想化は、'19970101' や '31/1/1996' など、異なる形式で表示される日付が含まれる文字列を暗黙的に変換しません。ただし、次のセクションで説明する parseDate、parseTime、および parseTimestamp 関数を使用して、異なる形式の文字列を明示的に適切なデータタイプに変換できます。これらの関数は、java.text.SimpleDateFormat クラス内で確立された規則を使用して、これらの関数で使用することのできる形式を定義します。このクラスによる日時の文字列形式の定義方法に関する詳細は、「 Javadocs for SimpleDateFormat 」を参照してください。フォーマット文字列は、お使いの Java のデフォルトロケールに固有のものであることに注意してください。

たとえば、これらの関数呼び出しに java.text.SimpleDateFormat 規則に準拠するフォーマット文字列を指定して、文字列を解析し、必要なデータタイプを返すことができます。

Expand
文字列文字列を解析する関数呼び出し

'1997010'

parseDate(myDateString, 'yyyyMMdd')

'31/1/1996'

parseDate(myDateString, 'dd''/''MM''/''yyyy')

'22:08:56 CST'

parseTime (myTime, 'HH:mm:ss z')

'03.24.2003 at 06:14:32'

parseTimestamp(myTimestamp, 'MM.dd.yyyy''at''hh:mm:ss')

タイムゾーンの指定

タイムゾーンは複数の形式で指定できます。「Eastern 標準時間」の EST などの一般的な省略は許可されますが、曖昧になってしまう可能性があるため、使用は推奨されません。あいまいなタイムゾーンは、continent または ocean/largest city 形式で定義されます。たとえば、America/New_York、America/Buenos_Aires、または Europe/London です。さらに、GMT オフセット GMT[+/-]HH:MM でカスタムのタイムゾーンを指定できます。

例: GMT-05:00

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat