Прочитать на английском

Поделиться через


Шаблоны даты и времени

Область применения:отмечено Databricks SQL отмечено Databricks Runtime

Существует несколько распространенных сценариев использования datetime в Azure Databricks:

Таблица шаблона

Azure Databricks использует шаблоны букв в следующей таблице для синтаксического анализа и форматирования меток даты и времени:

Символ Значение Презентация Примеры
G эра текст н.э., нашей эры
y год год 2020; 20
D день года число(3) 189
M/L месяц года Месяц 7; 07; июл; июль
д день месяца число(3) 28
Q/q квартал года число/текст 3; 03; 3 кв.; III квартал
E день недели текст Вт; вторник
F выровненный день недели в месяце число(1) 3
a утренние и дневные/вечерние часы утро-вечер PM
ч час в 12-часовом формате (1–12) число(2) 12
K час в формате AM/PM (0–11) число(2) 0
k час в 24-часовом формате (1–24) число(2) 0
H час суток (0–23) число(2) 0
m минута в часе число(2) 30
s секунда минуты число(2) 55
S доли секунды дробь 978
V идентификатор часового пояса идентификатор часового пояса США/Лос-Анджелес; Z; –08:30
z название часового пояса название зоны тихоокеанское стандартное время; PST
O локализованное смещение часового пояса смещение O GMT+8; GMT+08:00; UTC–08:00;
X смещение часового пояса «Z» соответствует нулю смещение X Z; –08; –0830; –08:30; –083015; –08:30:15;
x смещение часового пояса смещение по оси x +0000; –08; –0830; –08:30; –083015; –08:30:15;
Z смещение времени часового пояса смещение Z +0000; –0800; –08:00;
escape-символ для ввода текста разделитель
‘’ одинарная кавычка буквальный
[ начало необязательного раздела
] конец необязательного раздела

Число символов шаблона определяет формат.

  • Текст: стиль текста определяется на основе числа используемых символов шаблона. Для шаблона менее чем из 4 символов будет использоваться краткая текстовая форма, обычно сокращение. Например, понедельник (день недели) может быть сокращён до "пн". Будут использоваться ровно 4 символа шаблона для полного текстового написания, как правило, полного описания. Например, день недели "понедельник" может быть выведен как "понедельник". При использовании 5 или более букв произойдет сбой.

  • Число (n): здесь n обозначает максимальное число символов, которое можно использовать для этого типа шаблона даты и времени. Если число символов равно единице, то значение выводится с использованием минимального числа разрядов и без заполнения. В противном случае количество разрядов используется в качестве ширины поля вывода, при необходимости значение дополняется нулями.

  • Число/текст: если число символов шаблона равно 3 или больше, используйте правила для текста, приведенные выше. В противном случае используйте правила для чисел, приведенные выше.

  • Дробь: используйте один или несколько (до 9) символов 'S' подряд (например, SSSSSS) для парсинга и форматирования доли секунды. Для синтаксического анализа допустимая длина дробной части может быть [1, число подряд идущих 'S']. Для форматирования длина дробной части будет доведена до нужного количества смежных S с помощью нулей. Azure Databricks поддерживает дату и время с точностью микросекунд, которая имеет до 6 значимых цифр, но может анализировать наносекунды с усечением избыточной части.

  • Год: количество символов определяет минимальную ширину поля, до которой значения дополнительно заполняются. Если число символов равно двум, используется краткая двузначная форма. Для вывода на печать используются две крайние правые цифры. Для синтаксического анализа будет использоваться базовое значение 2000, т. е. год будет определяться в диапазоне от 2000 до 2099 включительно. Если число символов меньше четырех (но не двух), то знак будет использоваться только для указания года в отрицательном диапазоне. В противном случае знак выводится, если ширина поля превышена и символ 'G' отсутствует. Если будет 7 или более букв, произойдет сбой.

  • Месяц: соответствует правилу "число/текст". Текстовая форма зависит от символов: 'M' обозначает стандартную форму, а 'L' — "независимую" форму. Эти две формы отличаются только в некоторых языках. Например, в русском языке "июль" — это независимая форма для обозначения июля, а "июля" — стандартная форма. Ниже приведены примеры всех поддерживаемых символов шаблона:

    • 'M' или 'L': номер месяца в году начиная с 1. Между 'M' и 'L' нет различий. Месяцы с 1 по 9 выводятся без заполнения.

      > SELECT date_format(date '1970-01-01', 'M');
        1
      
      > SELECT date_format(date '1970-12-01', 'L');
        12
      
    • 'MM' или 'LL': номер месяца в году начиная с 1. Для месяцев с 1 по 9 добавляется заполнение нулями.

      > SELECT date_format(date '1970-1-01', 'LL');
        01
      
      > SELECT date_format(date '1970-09-01', 'MM');
        09
      
    • 'MMM': краткое текстовое представление в стандартной форме. Месяц должен быть частью шаблона даты, а не выступать как самостоятельная единица, кроме случаев в языках, где нет различий между частью шаблона и самостоятельной формой, как в английском.

      > SELECT date_format(date '1970-01-01', 'd MMM');
        1 Jan
      
      -- Passing a format pattern to to_csv()
      > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'dd MMM', 'locale', 'RU'));
        01 янв.
      
    • 'MMMM': полное текстовое представление месяца в стандартной форме. Оно используется для синтаксического анализа или форматирования месяцев в составе дат или меток времени.

      > SELECT date_format(date '1970-01-01', 'd MMMM');
        1 January
      
      -- Passing a format pttern to to_csv()
      > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'd MMMM', 'locale', 'RU'));
        1 января
      
  • Выводится время дня в формате "AM-PM" (до полудня - после полудня). Число символов в шаблоне должно быть равно 1.

  • Идентификатор часового пояса (V): выводит отображение идентификатора часового пояса. Число символов в шаблоне должно быть равно 2.

  • Имена часовых поясов (z): это выводит отображаемое текстовое имя идентификатора часового пояса. Если число символов равно единице, двум или трем, выводится короткое имя. Если число символов равно четырем, выводится полное имя. Пять или более букв вызовут ошибку.

  • Смещение X и x: это форматирует смещение в зависимости от количества букв в шаблоне. Один символ выводит только часы, например "+01", кроме случаев, когда минута не равна нулю: в этом случае минуты также выводятся, например "+0130". Два символа выводят часы и минуты без двоеточия, например "+0130". Три символа выводят часы и минуты с двоеточием, например "+01:30". Четыре символа выводят часы, минуты и секунды (не обязательно) без двоеточия, например "+013015". Пять символов выводят часы, минуты и секунды (не обязательно) с двоеточием, например "+01:30:15". Шесть или более букв приведут к ошибке. Символ шаблона X (верхний регистр) отобразит Z, когда смещение для отображения будет равно нулю, тогда как символ x (нижний регистр) отобразит "+00", "+0000" или "+00:00".

  • Смещение O: форматирует локальное смещение в зависимости от количества символов в шаблоне. Один символ выводит краткую форму локального смещения, который представляет собой текстовое описание локального смещения, например "GMT", с указанием часов без нуля в начале, с возможным указанием 2-значного числа минут и секунд, если это значение не равно нулю, и двоеточием, например "GMT+8". Четыре символа выводят полную форму, которая представляет собой текстовое описание локального смещения, например "GMT" с полем 2-значного числа часов и минут, необязательным полем секунд, если значение не равно нулю, и двоеточием, например "GMT+08:00". Если количество букв будет другим, произойдет ошибка.

  • Смещение Z: Форматирование смещения в зависимости от числа букв в шаблоне. Один, два или три символа выводят часы и минуты без двоеточия, например "+0130". Если смещение равно нулю, выходное значение имеет вид "+0000". Четыре символа выводят полную форму локального смещения, что эквивалентно четырем символам смещения O. Если смещение равно нулю, выводится соответствующий локализованный текст смещения. Если это значение не равно нулю, пять символов выводят часы и минуты с указанием секунд (необязательно) с двоеточием. Если смещение равно нулю, выводится "Z". Если будет шесть или более букв, произойдет сбой.

  • Начало и конец дополнительного раздела: чтобы указать дополнительный или (при необходимости) вложенный раздел, используйте []. Во время форматирования выводятся все допустимые данные, даже в дополнительном разделе. Во время синтаксического анализа в проанализированной строке может отсутствовать весь раздел. Дополнительный раздел начинается с [ и завершается ] (или в конце шаблона).

  • Символы E, F, q и Q можно использовать только для форматирования даты и времени, например date_format. Их нельзя использовать для синтаксического анализа даты и времени, например to_timestamp.