Typ: TIME

Dotyczy:sprawdź, czy zaznaczono tak , sprawdzanie bazy danych SQL usługi Databricks oznaczone jako tak Databricks Runtime 18.3 lub nowsze

Ważna

Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Reprezentuje godzinę dnia zawierającą wartości pól godziny, minuty i sekundy bez strefy czasowej.

Syntax

TIME | TIME(p)

p: opcjonalna precyzja określająca liczbę cyfr ułamkowych w polu sekund. Prawidłowe wartości to 06. Jeśli p zostanie pominięta, domyślna precyzja to 6 (mikrosekundy).

Limity

Obsługiwany zakres wartości czasu to 00:00:00.000000 .23:59:59.999999

Literals

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: jedna lub dwie godziny między 00 i (format 24-godzinny) lub między 01 i 1223 (format 12-godzinny z AM/PM).
  • [m]m: jedna lub dwie cyfry minuty między 00 i 59.
  • [s]s: jedna lub dwie cyfry sekundy między 00 i 59.
  • [f...]: Maksymalnie 6 cyfr ułamkowych części sekundy.
  • AM lub PM: opcjonalny sufiks bez uwzględniania wielkości liter wskazujący wartość zegara 12-godzinnego.

Prefiks TIME jest niewrażliwy na wielkość liter.

Jeśli drugi składnik nie zostanie określony, zostanie on domyślnie określony jako 0.

Jeśli literał nie reprezentuje odpowiedniego czasu, Azure Databricks zgłasza błąd.

Reguły precyzji

Gdy są łączone dwie TIME wartości o różnych precyzjach (na przykład w coalesce, CASE, UNION lub arytmetyce), wynik wykorzystuje szerszą z dwóch precyzji.

Na przykład najmniej typowy typ TIME(3) i TIME(6) to TIME(6).

W przypadku rzutowania wartości na niższą precyzję TIME ułamkowe sekundy są obcinane, a nie zaokrąglane:

> SELECT CAST(TIME'12:30:45.987654' AS TIME(3));
  12:30:45.987

Po dodaniu lub odjęciu interwału dziennego do TIMEelementu wynik wykorzystuje szerszą TIME precyzję i ułamkową precyzję sekundy interwału. Na przykład TIME(0) + INTERVAL '1.123456' SECOND zwraca wartość TIME(6). Jeśli wynik spadnie poza [00:00:00, 24:00:00), Azure Databricks podnosi DATETIME_OVERFLOW.

Notatki

Wszystkie operacje na TIME wartościach są wykonywane bez uwzględniania żadnej strefy czasowej.

Aby używać TIME kolumn w tabelach usługi Delta Lake, obsługa jest włączana automatycznie podczas tworzenia nowej tabeli delty z kolumną TIME typu. Aby dodać kolumnę TIME do istniejącej tabeli, należy najpierw włączyć tę funkcję:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timeType' = 'supported')

Typ TIME ma następujące ograniczenia:

  • Nieobsługiwane w wygenerowanych kolumnach.
  • Nieobsługiwane w przypadku indeksów filtrów blooma.
  • Nieobsługiwane w przypadku zamawiania Z.

Examples

> 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