日期/时间函数
下表介绍了日期/时间功能。
第二个参数或 duration_add 或 duration_subtract 函数的返回值:
- 语法见表 1。
- 有关时间间隔数据类型,请参阅Netezza Performance ServerSQL 时间间隔支持。
- 有关数据/时间单位,请参阅提取日期和时间值。
| 类型 | 描述 |
|---|---|
add_months(date,n) |
返回 "date对应的日期加上整数 "n对应的月数。 如果结果日期的天数多于结果月份的天数,则结果为该月份的最后一天。 否则,生成的日期与 "date的日期成分相同。 例如:add_months('March 03, 2015',2) 返回 "'2015-05-03 00:00:00'"""" add_months('March 31, 2015',-1)返回 "'2015-02-28 00:00:00' |
age(ts,ts)age(ts) |
返回两个时间戳之间的时间间隔。 返回值的精度与最精确参数的精度相同。 例如:
age(CURRENT_TIMESTAMP,
ts)。Netezza Performance ServerSQL 时间间隔支持是非标准的。 |
date_part(units,col) |
从为 "col指定的日期/时间值、时间间隔或持续时间中提取 "units所代表的子字段。 该功能等同于 "extract()。 |
date_trunc(units,date) |
将 "date指定的日期截断到 "units指定的精度。 |
extract(units FROM col) |
从为 "col指定的日期/时间值、时间间隔或持续时间中提取 "units所代表的子字段。 该功能等同于 "date_part()。 |
last_day(date) |
返回指定日期月份的最后一天。 |
months_between(d1,d2) |
返回日期 "d1和 "d2之间的月份数:
|
next_day(date,weekday) |
返回特定日期之后工作日的日期。 date参数可以是日期或时间戳。 返回值的格式与参数 "date的格式相同。
select next_day('12-25-2013','Saturday') 返回: '2013-12-28' |
now() |
该函数与 current_timestamp 相同。 更多信息,请参阅转换功能。 |
overlaps(a,b,c,d) |
确定两个时间间隔是否重叠。 的数据类型:
|
duration_add(a,b) |
返回两个参数(用 "a和 "b"表示)相加后的持续时间。 参数数据类型的有效组合见表 2。 |
duration_subtract(a,b) |
返回第二个参数(b)减去第一个参数(a")后的持续时间。表 3 列出了参数数据类型的有效组合。 |
timeofday() |
该函数是 current_timestamp 的详细字符串版本。 例如,Mon 01 Dec 2014 16:12:05 EST。 输出格式由所使用的转换函数决定(参见转换函数) |
timezone(timestamp from_tz to_tz) |
将from_tz时区的输入时间戳值转换为to_tz时区的时间戳值。 例如:系统使用 ICU 库来验证和解析所提供的时区值。 有关程序 ID(如 |
| 第一参数数据类型 | 第二参数数据类型 | 退货 |
|---|---|---|
| 日期 | 数值(8,0) | 日期 |
| 时间 | 数值(6,0) | 时间 |
| 时间戳记 | 数值(6,0) | 时间戳记 |
| 数值(8,0) | ||
| 数值(14,0) | ||
| 数值(15,1) | ||
| 数值(16,2) | ||
| 数值(17,3) | ||
| 数值(18,4) | ||
| 数值(19,5) | ||
| 数值(20,6) |
| 第一参数数据类型 | 第二参数数据类型 | 退货 |
|---|---|---|
| 日期 | 日期 | 数值(8,0) |
| 数值(8,0) | 日期 | |
| 时间 | 时间 | 数值(6,0) |
| 数值(6,0) | 时间 | |
| 时间戳记 | 时间戳记 | 数值(20,6) |
| 数值(6,0) | 时间戳记 | |
| 数值(8,0) | ||
| 数值(14,0) | ||
| 数值(15,1) | ||
| 数值(16,2) | ||
| 数值(17,3) | ||
| 数值(18,4) | ||
| 数值(19,5) | ||
| 数值(20,6) |
- 数值(6,0)类型表示 hhmmss 形式的持续时间,例如 030745 表示 3 小时 7 分钟 45 秒。
- 数值(8,0)类型表示 YYYYMMDD 形式的持续时间,例如 00020525 表示 2 年 5 个月 25 天。
- 其他数值包含 14-20 位数字:
- 前 8 位数字表示持续时间的日期部分,格式为 YYYYMMDD。
- 接下来的 6 个数字以 hhmmss 格式表示持续时间的时间部分。
- 接下来的 0-6 位数字表示几分之一秒。
00010521010521999::numeric(17,3)表示 1 年 5 个月 21 天 1 小时 5 分钟21.999秒。