Spec-Zone.ru › Polars

Временные функции

Функция

Описание

DATE_PART

Извлекает часть даты (или даты и времени), например «год», «месяц» и т. д.

EXTRACT

Предоставляет те же возможности, что и DATE_PART, но с немного отличающимся синтаксисом.

STRFTIME

Форматирует временное значение (Datetime, Date или Time) в виде строки.

DATE_PART

Извлекает часть даты (или даты и времени), например «год», «месяц» и т. д.

Поддерживаемые части/поля:

Часть

Описание

Тип данных

‘millennium’, ‘millennia’

Номер тысячелетия

Int32

‘century’, ‘centuries’, ‘c’

Номер столетия

Int32

‘decade’, ‘decades’

Номер десятилетия (год / 10)

Int32

‘isoyear’

Номер года по ISO

Int32

‘year’, ‘years’, ‘y’

Календарный год

Int32

‘quarter’, ‘quarters’

Квартал года (1–4)

Int8

‘month’, ‘months’, ‘mon’, ‘mons’

Месяц года (1–12)

Int8

‘dayofyear’, ‘doy’

День года (1–366)

Int16

‘dayofweek’, ‘dow’, ‘weekday’

День недели (0: воскресенье — 6: суббота)

Int8

‘isoweek’, ‘week’

Номер недели по ISO (1–53)

Int8

‘isodow’

День недели по ISO (1: понедельник — 7: воскресенье)

Int8

‘day’, ‘days’, ‘dayofmonth’, d’

День месяца (1–31)

Int8

‘hour’, ‘hours’, ‘h’

Час дня (0–23)

Int8

‘minute’, ‘minutes’, ‘mins’, ‘min’, ‘m’

Минута часа (0–59)

Int8

‘second’, ‘seconds’, ‘sec’, ‘secs’, ‘s’

Секунда минуты (0–59)

Int8

‘millisecond’, ‘milliseconds’, ‘ms’

Секунды и миллисекунды внутри минуты (0–59999.)

Float64

‘microsecond’, ‘microseconds’, ‘us’

Секунды и микросекунды внутри минуты (0–59999999.)

Float64

‘nanosecond’, ‘nanoseconds’, ‘ns’

Секунды и наносекунды внутри минуты (0–59999999999.)

Float64

‘timezone’

Смещение часового пояса относительно UTC в секундах ()

Int64

‘time’

Компонент времени

Time

‘epoch’

Количество секунд с начала эпохи Unix (1970-01-01)

Float64

Пример:

df = pl.DataFrame(
  {
      "dt": [
          datetime(1969, 12, 31, 4, 30, 45, 123456),
          datetime(2026, 7, 12, 10, 23, 59, 999999),
          datetime(2077, 2, 10, 18, 10, 15, 654321),
      ]
  }
)
df.sql("""
  SELECT
    dt,
    DATE_PART('year', dt) AS year,
    DATE_PART('month', dt) AS month,
    DATE_PART('day', dt) AS day,
    DATE_PART('ms', dt) AS secs_ms,
  FROM self
""")
# shape: (3, 5)
# ┌────────────────────────────┬──────┬───────┬─────┬───────────┐
# │ dt                         ┆ year ┆ month ┆ day ┆ secs_ms   │
# │ ---                        ┆ ---  ┆ ---   ┆ --- ┆ ---       │
# │ datetime[μs]               ┆ i32  ┆ i8    ┆ i8  ┆ f64       │
# ╞════════════════════════════╪══════╪═══════╪═════╪═══════════╡
# │ 1969-12-31 04:30:45.123456 ┆ 1969 ┆ 12    ┆ 31  ┆ 45123.456 │
# │ 2026-07-12 10:23:59.999999 ┆ 2026 ┆ 7     ┆ 12  ┆ 59999.999 │
# │ 2077-02-10 18:10:15.654321 ┆ 2077 ┆ 2     ┆ 10  ┆ 15654.321 │
# └────────────────────────────┴──────┴───────┴─────┴───────────┘

EXTRACT

Извлекает часть даты (или даты и времени), например «год», «месяц» и т. д.

Поддерживаемые части/поля:

Часть

Описание

Тип данных

‘millennium’, ‘millennia’

Номер тысячелетия

Int32

‘century’, ‘centuries’, ‘c’

Номер столетия

Int32

‘decade’, ‘decades’

Номер десятилетия (год / 10)

Int32

‘isoyear’

Номер года по ISO

Int32

‘year’, ‘years’, ‘y’

Календарный год

Int32

‘quarter’, ‘quarters’

Квартал года (1–4)

Int8

‘month’, ‘months’, ‘mon’, ‘mons’

Месяц года (1–12)

Int8

‘dayofyear’, ‘doy’

День года (1–366)

Int16

‘dayofweek’, ‘dow’, ‘weekday’

День недели (0: воскресенье — 6: суббота)

Int8

‘isoweek’, ‘week’

Номер недели по ISO (1–53)

Int8

‘isodow’

День недели по ISO (1: понедельник — 7: воскресенье)

Int8

‘day’, ‘days’, ‘dayofmonth’, d’

День месяца (1–31)

Int8

‘hour’, ‘hours’, ‘h’

Час дня (0–23)

Int8

‘minute’, ‘minutes’, ‘mins’, ‘min’, ‘m’

Минута часа (0–59)

Int8

‘second’, ‘seconds’, ‘sec’, ‘secs’, ‘s’

Секунда минуты (0–59)

Int8

‘millisecond’, ‘milliseconds’, ‘ms’

Секунды и миллисекунды внутри минуты (0–59999.)

Float64

‘microsecond’, ‘microseconds’, ‘us’

Секунды и микросекунды внутри минуты (0–59999999.)

Float64

‘nanosecond’, ‘nanoseconds’, ‘ns’

Секунды и наносекунды внутри минуты (0–59999999999.)

Float64

‘timezone’

Смещение часового пояса относительно UTC в секундах ()

Int64

‘time’

Компонент времени

Time

‘epoch’

Количество секунд с начала эпохи Unix (1970-01-01)

Float64

Пример:

df = pl.DataFrame(
  {
    "dt": [
      date(1969, 12, 31),
      date(2026, 8, 22),
      date(2077, 2, 10),
    ],
  }
)
df.sql("""
  SELECT
    dt,
    EXTRACT(decade FROM dt) AS decade,
    EXTRACT(year FROM dt) AS year,
    EXTRACT(quarter FROM dt) AS quarter,
  FROM self
""")
# shape: (3, 4)
# ┌────────────┬────────┬──────┬─────────┐
# │ dt         ┆ decade ┆ year ┆ quarter │
# │ ---        ┆ ---    ┆ ---  ┆ ---     │
# │ date       ┆ i32    ┆ i32  ┆ i8      │
# ╞════════════╪════════╪══════╪═════════╡
# │ 1969-12-31 ┆ 196    ┆ 1969 ┆ 4       │
# │ 2026-08-22 ┆ 202    ┆ 2026 ┆ 3       │
# │ 2077-02-10 ┆ 207    ┆ 2077 ┆ 1       │
# └────────────┴────────┴──────┴─────────┘

STRFTIME

Форматирует временное значение (Datetime, Date или Time) в виде строки с использованием строки формата, совместимой с chrono strftime.

df = pl.DataFrame(
  {
    "dt": [date(1978, 7, 5), None, date(2020, 4, 10)],
    "tm": [time(10, 10, 10), time(22, 33, 55), None],
  }
)
df.sql("""
  SELECT
    STRFTIME(dt, '%B %d, %Y') AS s_dt,
    STRFTIME(tm, '%H.%M.%S') AS s_tm,
  FROM self
""")
# shape: (3, 2)
# ┌────────────────┬──────────┐
# │ s_dt           ┆ s_tm     │
# │ ---            ┆ ---      │
# │ str            ┆ str      │
# ╞════════════════╪══════════╡
# │ July 05, 1978  ┆ 10.10.10 │
# │ null           ┆ 22.33.55 │
# │ April 10, 2020 ┆ null     │
# └────────────────┴──────────┘

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/sql/functions/temporal.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API