DATE_PART
功能描述
从日期/时间值中提取特定的部分(如年、月、日、小时、分钟、秒等)。
语法格式
DATE_PART(FIELD, SOURCE)
参数说明
FIELD
:要提取的时间部分,字符串值。并非每种输入的数据类型都适用于所有字段。例如,无法从DATE类型中提取小于一天的字段,也无法从TIME类型中提取一天或更长时间的字段。SOURCE
:要从中提取时间部分的日期/时间值,类型为DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TIME、TIME WITH TIME ZONE或INTERVAL的值表达式。
FIELD参数取值
FIELD | 取值说明 |
---|---|
millennium | 千年。19xx的年份在第二个千年里,第三个千年从2001年1月1日开始。对于INTERVAL类型值,表示年份除以1000。 |
century | 世纪。对于INTERVAL类型值,表示年份除以100。 |
decade | 十年。即年份除以10。 |
year | 年份。 |
quarter | 季度。范围为[1,4]。 |
month | |
week | 该天所在的ISO 8601周编号的年份里是第几周。 |
day | |
hour | 小时。范围为[0,23],时间间隔不受限制。 |
minute | 分钟。范围为[0,59]。 |
second | 秒。范围为[0,59]。 |
milliseconds | 毫秒。时间值的秒部分(包括小数部分)乘以1000。 |
microseconds | 微秒。时间值的秒部分(包括小数部分)乘以1000000。 |
isoyear | 日期所落在的ISO 8601周编号的年,不适用于时间间隔。 根据ISO 8601标准,一年的第1周是包含该年第一个星期四的那一周。某些年份的第一周可能从上一年的最后一两天开始。某些年份的最后一周可能延续到下一年的前几天。 例如2024-12-30的结果是2025,2022-1-1的结果是2021。 |
dow | 星期几。0表示星期日,1表示星期一,依此类推到6表示星期六。 |
isodow | 星期几。1表示星期一,2表示星期二,依此类推到7表示星期日。 |
julian | 与日期或时间戳对应的儒略日(JDN,Julian Day Number)。 |
doy | 一年中的第几天。范围为[1,366]。 |
epoch | |
timezone | 与UTC的时区偏移,以秒为单位。正值对应于UTC东边的时区,负值对应UTC西边的时区。 |
timezone_hour | 时区偏移的小时部分。 |
timezone_minute | 时区偏移的分钟部分。 |
函数返回类型
DOUBLE PRECISION类型。
示例
sql
SQL> SELECT DATE_PART('year', '2020-10-20 12:30:25.5020555');
EXPR1 |
------------------------------------------------------------------------------
2020 |
SQL> SELECT DATE_PART('mon', '2020-10-20 12:30:25.5020555');
EXPR1 |
------------------------------------------------------------------------------
10 |
SQL> SELECT DATE_PART('hrs', '2020-10-20 12:30:25.5020555');
EXPR1 |
------------------------------------------------------------------------------
12 |