適用対象:
Databricks SQL
Databricks Runtime 18.3 以降" とマークされているチェック
Important
この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。
タイム ゾーンのない時間、分、秒のフィールドの値で構成される時刻を表します。
Syntax
TIME | TIME(p)
p: 秒フィールドの小数部の桁数を指定する省略可能な有効桁数。
有効な値は0から6までです。
pを省略すると、既定の有効桁数は 6 (マイクロ秒) になります。
Limits
サポートされている時間値の範囲は、23:59:59.999999に00:00:00.000000。
リテラル
TIME timeString
timeString
{ '[h]h:[m]m' |
'[h]h:[m]m:[s]s' |
'[h]h:[m]m:[s]s.[f...]' |
'[h]h:[m]m AM|PM' |
'[h]h:[m]m:[s]s AM|PM' |
'[h]h:[m]m:[s]s.[f...] AM|PM' }
-
[h]h:00と23(24 時間形式) の間、または01と12(AM/PMを使用した 12 時間形式) の間の 1 桁または 2 桁の時間。 -
[m]m:00と59の間の 1 または 2 桁の分。 -
[s]s:00と59の間の 1 つまたは 2 桁の秒。 -
[f...]: 秒の小数部の最大 6 桁の数字。 -
AMまたはPM: 12 時間のクロック値を示す省略可能な大文字と小文字を区別しないサフィックス。
プレフィックス TIME では、大文字と小文字が区別されません。
2 番目のコンポーネントが指定されていない場合は、既定で 0されます。
リテラルが適切な時間を表していない場合Azure Databricksエラーが発生します。
有効桁数ルール
有効桁数が異なる 2 つの TIME 値を組み合わせた場合 ( COALESCE、 CASE、 UNION、算術など)、結果では 2 つの有効桁数のうち、より広い方が使用されます。
たとえば、最も一般的でない種類の TIME(3) と TIME(6) は TIME(6)。
TIME値を低い精度にキャストすると、秒の小数部は切り捨てられ、丸めされません。
> SELECT CAST(TIME'12:30:45.987654' AS TIME(3));
12:30:45.987
TIMEに対して日単位の間隔を加算または減算すると、結果はTIMEの有効桁数の広さと、間隔の秒の小数部の有効桁数を使用します。 たとえば、TIME(0) + INTERVAL '1.123456' SECOND では TIME(6) が返されます。 結果が [00:00:00, 24:00:00) 外にある場合、Azure Databricksは DATETIME_OVERFLOW を発生させます。
注記
TIME値に対するすべての操作は、タイム ゾーンを考慮せずに実行されます。
Delta Lake テーブルで TIME 列を使用するには、 TIME 型の列を持つ新しい Delta テーブルを作成すると、サポートが自動的に有効になります。 既存のテーブルに TIME 列を追加するには、まずこの機能を有効にする必要があります。
ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timeType' = 'supported')
TIME型には、次の制限があります。
- 生成された列ではサポートされていません。
- ブルーム フィルター インデックスではサポートされていません。
- Z オーダーではサポートされていません。
例示
> SELECT TIME'10:30:00';
10:30:00
> SELECT TIME'08:15';
08:15:00
> SELECT TIME'23:59:59.123456';
23:59:59.123456
> SELECT CAST('14:30:00' AS TIME);
14:30:00
> SELECT CAST('09:15:30.5' AS TIME(3));
09:15:30.500
> SELECT current_time();
16:57:04.304361
> SELECT make_time(6, 30, 45.887);
06:30:45.887000