时间#
函数 |
描述 |
|---|---|
提取日期(或日期时间)的一部分,如‘年’、‘月’等。 |
|
提供与 |
|
将时间值(Datetime、Date 或 Time)格式化为字符串。 |
DATE_PART#
提取日期(或日期时间)的一部分,如‘年’、‘月’等。
- Supported parts/fields:
“千年” | “千年”
“世纪” | “世纪”
“十年” | “几十年”
“isoyear”
“年” | “年” | “y”
“季度” | “季度”
“月” | “月份” | “月” | “月份”
“一年中的第几天” | “doy”
“星期几” | “dow”
“isoweek” | “week”
“isodow”
“天” | “天数” | “d”
“小时” | “小时” | “h”
“分钟” | “分钟” | “分钟” | “分钟” | “分钟”
“秒” | “秒” | “秒” | “秒” | “秒”
“毫秒” | “毫秒” | “ms”
“微秒” | “微秒” | “us”
“纳秒” | “纳秒” | “ns”
“时区”
“时间”
“epoch”
示例:
df = pl.DataFrame(
{
"dt": [
date(1969, 12, 31),
date(2026, 8, 22),
date(2077, 2, 10),
]
}
)
df.sql("""
SELECT
dt,
DATE_PART('year', dt) AS year,
DATE_PART('month', dt) AS month,
DATE_PART('day', dt) AS day
FROM self
""")
# shape: (3, 4)
# ┌────────────┬──────┬───────┬─────┐
# │ dt ┆ year ┆ month ┆ day │
# │ --- ┆ --- ┆ --- ┆ --- │
# │ date ┆ i32 ┆ i8 ┆ i8 │
# ╞════════════╪══════╪═══════╪═════╡
# │ 1969-12-31 ┆ 1969 ┆ 12 ┆ 31 │
# │ 2026-08-22 ┆ 2026 ┆ 8 ┆ 22 │
# │ 2077-02-10 ┆ 2077 ┆ 2 ┆ 10 │
# └────────────┴──────┴───────┴─────┘
提取#
提取日期(或日期时间)的一部分,如‘年’、‘月’等。
- Supported parts/fields:
“千年” | “千年”
“世纪” | “世纪”
“十年” | “几十年”
“isoyear”
“年” | “年” | “y”
“季度” | “季度”
“月” | “月份” | “月” | “月份”
“一年中的第几天” | “doy”
“星期几” | “dow”
“isoweek” | “week”
“isodow”
“天” | “天数” | “d”
“小时” | “小时” | “h”
“分钟” | “分钟” | “分钟” | “分钟” | “分钟”
“秒” | “秒” | “秒” | “秒” | “秒”
“毫秒” | “毫秒” | “ms”
“微秒” | “微秒” | “us”
“纳秒” | “纳秒” | “ns”
“时区”
“时间”
“epoch”
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#
使用与chrono strftime兼容的格式化字符串将时间值(Datetime、Date 或 Time)格式化为字符串。
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 │
# └────────────────┴──────────┘