更新时间:2026-01-22 GMT+08:00
分享

时间和日期函数概述

DWS的时间和日期函数用于在数据业务中加减日期,获取当前时间、格式化日期显示、提取年月日等操作,广泛应用于数据分析、日程管理、财务报表等领域,帮助用户提高数据处理效率和准确性。

表1

类型

函数

功能

时间和日期基本函数

day(date | timestamp with time zone)

获取给定日期时间中的日。

weekday(date | timestamp with time zone)

获取给定日期时间对应的星期值,星期一作为一周的开始日。

week(date[, mode])

根据模式返回指定日期时间所处年份中对应的周数。

month(date | timestamp with time zone)

获取给定日期时间的月份部分。

quarter(date | timestamp with time zone)

获取给定日期时间所属的季度。

year(date | timestamp with time zone)

获取给定日期时间所处的年份。

yearweek(date[, mode])

获取给定日期时间在本年中对应的年份和周数

dayofweek(date | timestamp with time zone)

获取给定日期时间对应的星期值,星期日作为一周的开始日。

dayofmonth(date | timestamp with time zone)

获取给定日期时间所处月份中的天数。

dayofyear(date | timestamp with time zone)

获取给定日期在本年中是第几天。

weekofyear(date | timestamp with time zone)

获取给定日期时间在本年中是第几周,等价于week(date, 3)。

makedate(year, dayofyear)

根据给定的年份和一年中的第几天生成对应的日期值。

maketime(hour, minute, second)

根据给定的小时、分钟和秒数生成时间值。

hour(timestamp with time zone)

获取时间中的小时值。

minute(timestamp with time zone)

获取时间中的分钟值。

second(timestamp with time zone)

获取时间的秒数值。

microsecond(timestamp with time zone)

获取时间中的微秒值。

from_unixtime(unix_timestamp[,format])

格式串缺省时,将unix时间戳转换为日期时间类型输出。

unix_timestamp([timestamp with time zone])

用于将日期时间值转换为 Unix时间戳(即自1970-01-01 00:00:00 UTC以来经过的秒数)。

now([fsp])

当前事务开始的日期及时间。

last_day(d)

获取日期或者日期时间中对应月份的最后一天。

next_day(x,y)

计算给定时间(x)之后第一个匹配目标星期几(y)的日期。

from_days(days)

根据给定的天数,返回对应的日期值。

to_days(timestamp)

根据指定日期,返回自0年开始的天数。

时间和日期运算函数

age(timestamp, timestamp)

将两个参数相减,并以年、月、日作为返回值。

age(timestamp)

将两个参数相减,并以年、月、日作为返回值。

adddate(date, interval | int)

返回给定日期时间加上指定单位的时间间隔的结果。

subdate(date, interval | int)

返回给定日期时间减去指定单位的时间间隔的结果。

addtime(timestamp | time | text, interval | text | numeric)

返回给定日期/时间加上指定时间间隔的结果。

subtime(timestamp | time | text, interval | text | numeric)

返回给定日期/时间减去指定时间间隔的结果。

date_add(date, interval)

返回给定日期时间加上指定单位的时间间隔的结果。

date_sub(date, interval)

返回给定日期时间减去指定单位的时间间隔的结果。

timestampadd(field, numeric | text, timestamp)

将以单位field的整数时间间隔(秒数可以带小数)添加到日期时间表达式中。

timestampdiff(field, timestamp1, timestamp2)

将两个日期参数相减(timestamp2 - timestamp1),并以单位field作为返回值。

timediff(timestamp | time | text, timestamp | time | text)

将两个日期参数相减。

datediff(date1, date2)

返回给定日期之间相差的天数值。

period_add(P, N)

返回给定时期加上N个月后的日期。

period_diff(P1, P2)

返回给定日期之间的月数差值。

add_months(d,n)

用于计算时间点d再加上n个月的时间。

时间和日期截取函数

date_part(text, timestamp | interval)

从一个日期时间表达式中提取指定的部分。

date_trunc(text, timestamp with time zone | timestamp without time zone | interval)

将时间日期数据截断到指定的精度。

trunc(timestamp)

默认按天截取。

extract(field from timestamp | time | interval)

从日期时间的表达式中提取指定的时间部分。

获取当前时间和日期函数

clock_timestamp()

实时时钟的当前时间戳。

current_date

返回当前日期。

curdate()

返回当前日期。此函数为MySQL兼容性函数。

current_time

返回当前时间。

curtime([fsp])

返回当前时间。

current_timestamp

返回当前日期和时间(当前事务的开始时间)。

localtime

返回当前时间。

localtimestamp

返回当前日期及时间。

statement_timestamp()

返回当前日期及时间(当前语句的开始时间)

sysdate

返回当前系统的日期及时间。

timeofday()

返回当前日期及时间。

transaction_timestamp()

返回当前事务开始的系统日期及时间。

时间和日期格式化函数

date_format(timestamp, fmt)

将日期参数按照fmt指定的格式转换为字符串。

time_format(time, fmt)

将日期参数按照fmt指定的格式转换为字符串。

str_to_date(str, format)

将日期时间格式的字符串,按照所提供的显示格式转换为日期类型的值。

str_to_time(str, format)

将时间格式的字符串,按照所提供的显示格式转换为时间类型的值。

其他时间和日期处理函数

justify_days(interval)

将时间间隔以30天为单位。

justify_hours(interval)

将时间间隔以24小时为单位。

justify_interval(interval)

结合justify_days和justify_hours,调整时间间隔。

numtodsinterval(num, text)

将数字加时间间隔单位转换为INTERVAL DAY TO SECOND类型的值。

convert_tz(timestamp, from_tz, to_tz)

将时间日期值timestamp从from_tz (text)给出的时区转到to_tz(text)给出的时区,返回转换后的时区时间。

isfinite(date)

测试是否为有限日期。

isfinite(timestamp)

测试判断是否为有限时间。

isfinite(interval)

测试是否为有限区间。

pg_sleep(seconds)

服务器线程延迟时间。

相关文档