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

Область применения:check marked yes Databricks SQL check marked yes Databricks Runtime

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

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

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

Символ Значение Презентация Примеры
G эра текст н.э., нашей эры
y year year 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 час в 12-часовом формате (0–11) число(2) 0
k час в 24-часовом формате (1–24) число(2) 0
H час в 24-часовом формате (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' — "независимую" форму. Эти две формы отличаются только в некоторых языках. Например, в русском языке "июль" — это независимая форма для July, а "июля" — стандартная форма. Ниже приведены примеры всех поддерживаемых символов шаблона:

    • '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 января
      
  • Утро-вечер: выводится время дня в формате "утро-вечер". Число символов в шаблоне должно быть равно 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.