Typ: TIME

Dotyczy:sprawdź, czy zaznaczono tak, sprawdź, czy usługa SQL databricks została oznaczona jako tak Databricks Runtime 18 LTS lub nowsza

Note

Środowisko Databricks Runtime 18 jest nowsze niż środowisko Databricks Runtime 18.0, 18.1 i 18.2. Funkcje, które wcześniej były dostarczane jako nowsza numerowana wersja, są teraz dostarczane jako daty aktualizacji środowiska Databricks Runtime 18 zamiast. Aby uzyskać szczegółowe informacje, zobacz Informacje o ujednoliconej wersji.

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 23 i 0112 (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