日期/时间函数
日期和时间函数进行日期和时间数据类型的转换、提取或处理操作,可以返回日期和时间信息。
使用
TIME 或 TIMESTAMP 输入函数有两种变体:
-
TIME WITH TIME ZONE或者TIMESTAMP WITH TIME ZONE -
TIME WITHOUT TIME ZONE或者TIMESTAMP WITHOUT TIME ZONE
简洁起见,这些变体不单独显示。
- 和 * 运算符以交换对的形式出现,例如,
DATE + INTEGER和INTEGER + DATE。每个交换对仅显示其中一个运算符。
夏令时注意事项
将 INTERVAL 值添加到(或从中扣除 INTERVAL 值)TIMESTAMP WITH TIME ZONE 值时,白天组件按指定天数增加(或递减)TIMESTAMP WITH TIME ZONE 的日期。在多次夏令时更改(会话时区设置为识别 DST 的时区)中,这意味着 INTERVAL '1 day' 不一定等于 INTERVAL '24 hours'。
例如,会话时区设置为 CST7CDT 时:
TIMESTAMP WITH TIME ZONE '2014-04-02 12:00-07' + INTERVAL '1 day'
会生成
TIMESTAMP WITH TIME ZONE '2014-04-03 12:00-06'
将 INTERVAL '24 hours' 添加到相同的开头字母 TIMESTAMP WITH TIME ZONE 会生成
TIMESTAMP WITH TIME ZONE '2014-04-03 13:00-06',
出现此结果是因为在时区 2014-04-03 02:00 中 CST7CDT 的夏令时发生了变化。
事务中的日期/时间函数
某些日期/时间函数(例如
CURRENT_TIMESTAMP 和
NOW)会返回当前事务的开始时间;在该事务的时间段内,这些函数会返回相同的值。其他日期/时间函数(例如
TIMEOFDAY)总是返回当前时间。
另请参阅
用于日期/时间格式化的模板模式本节内容
- ADD_MONTHS
- AGE_IN_MONTHS
- AGE_IN_YEARS
- CLOCK_TIMESTAMP
- CURRENT_DATE
- CURRENT_TIME
- CURRENT_TIMESTAMP
- DATE_PART
- DATE
- DATE_TRUNC
- DATEDIFF
- DAY
- DAYOFMONTH
- DAYOFWEEK
- DAYOFWEEK_ISO
- DAYOFYEAR
- DAYS
- EXTRACT
- GETDATE
- GETUTCDATE
- HOUR
- ISFINITE
- JULIAN_DAY
- LAST_DAY
- LOCALTIME
- LOCALTIMESTAMP
- MICROSECOND
- MIDNIGHT_SECONDS
- MINUTE
- MONTH
- MONTHS_BETWEEN
- NEW_TIME
- NEXT_DAY
- NOW [日期/时间]
- OVERLAPS
- QUARTER
- ROUND
- SECOND
- STATEMENT_TIMESTAMP
- SYSDATE
- TIME_SLICE
- TIMEOFDAY
- TIMESTAMPADD
- TIMESTAMPDIFF
- TIMESTAMP_ROUND
- TIMESTAMP_TRUNC
- TRANSACTION_TIMESTAMP
- TRUNC
- WEEK
- WEEK_ISO
- YEAR
- YEAR_ISO