SQL

第138章 SQL函数 TIMESTAMPADD

2022-05-11  本文已影响0人  Cache技术分享

第138章 SQL函数 TIMESTAMPADD

一个标量日期/时间函数,它返回一个新的时间戳,该时间戳是通过将指定日期部分的多个间隔添加到时间戳来计算的。

大纲

{fn TIMESTAMPADD(interval-type,integer-exp,timestamp-exp)}

参数

描述

TIMESTAMPADD 函数通过将指定的日期部分增加指定的单位数来修改日期/时间表达式。例如,如果 interval-typeSQL_TSI_MONTH 并且 integer-exp5,则 TIMESTAMPADDtimestamp-exp 增加五个月。还可以通过为 integer-exp 指定负整数来减少日期部分。

TIMESTAMPADD 返回与输入timestamp-exp 数据类型相同的时间戳。此时间戳可以是 %Library.TimeStamp 数据类型格式 (yyyy-mm-dd hh:mm:ss.ffff) 或 %Library.PosixTime 数据类型格式(编码的 64 位有符号整数)。

请注意,TIMESTAMPADD 只能用作 ODBC 标量函数(使用大括号语法)。

可以使用 DATEADD 通用函数对时间戳执行类似的时间/日期修改操作。

Interval Types

间隔类型参数可以是以下时间戳间隔之一:

这些时间戳间隔可以使用单引号或双引号来指定,带或不带引号。它们不区分大小写。

增加或减少时间戳间隔会导致其他间隔被适当地修改。例如,增加午夜过后的小时数会自动增加天数,而这又会增加月数,依此类推。 TIMESTAMPADD 总是返回一个有效的日期,考虑到一个月的天数,并计算闰年。例如,将 1 月 31 日增加一个月会返回 2 月 28 日(该月中的最高有效日期),除非指定的年份是闰年,在这种情况下它会返回 2 月 29 日。

可以按三位精度的小数秒递增或递减。将小数秒指定为千分之一秒的整数计数(001 到 999)。

DATEADDTIMESTAMPADD 处理季度(3 个月间隔); DATEDIFFTIMESTAMPDIFF 不处理宿舍。

%TimeStamp 格式化

如果 timestamp-exp 参数采用 %Library.TimeStamp 数据类型格式 (yyyy-mm-dd hh:mm:ss.ffff),则适用以下规则:

范围和值检查

TIMESTAMPADD%Library.TimeStamp 输入值执行以下检查:

示例

以下示例将 1 周添加到原始时间戳:

SELECT {fn TIMESTAMPADD(SQL_TSI_WEEK,1,'2017-12-20 12:00:00')}
image.png

以下示例将 5 个月添加到原始时间戳:

SELECT {fn TIMESTAMPADD(SQL_TSI_MONTH,5,'2022-12-20 12:00:00')}
image.png

以下示例将原始时间戳增加 45 分钟:

SELECT {fn TIMESTAMPADD(SQL_TSI_MINUTE,45,'2017-12-20 00:00:00')}

以下示例将原始时间戳减少 45 分钟:

SELECT {fn TIMESTAMPADD(SQL_TSI_MINUTE,-45,'2017-12-20 00:00:00')}

上一篇 下一篇

猜你喜欢

热点阅读