第138章 SQL函数 TIMESTAMPADD
文章目录
- 第138章 SQL函数 TIMESTAMPADD
- 大纲
- 参数
- 描述
- Interval Types
- %TimeStamp 格式化
- 范围和值检查
- 示例
第138章 SQL函数 TIMESTAMPADD
一个标量日期/时间函数,它返回一个新的时间戳,该时间戳是通过将指定日期部分的多个间隔添加到时间戳来计算的。
大纲
{fn TIMESTAMPADD(interval-type,integer-exp,timestamp-exp)}
参数
interval-type
-integer-exp
表示的时间/日期间隔类型,指定为关键字。integer-exp
- 要添加到timestamp-exp
的整数值表达式。timestamp-exp
- 时间戳值表达式,将增加integer-exp
的值。
描述
TIMESTAMPADD
函数通过将指定的日期部分增加指定的单位数来修改日期/时间表达式。例如,如果 interval-type
是 SQL_TSI_MONTH
并且 integer-exp
是 5
,则 TIMESTAMPADD
将 timestamp-exp
增加五个月。还可以通过为 integer-exp
指定负整数来减少日期部分。
TIMESTAMPADD
返回与输入timestamp-exp
数据类型相同的时间戳。此时间戳可以是 %Library.TimeStamp
数据类型格式 (yyyy-mm-dd hh:mm:ss.ffff
) 或 %Library.PosixTime
数据类型格式(编码的 64
位有符号整数)。
请注意,TIMESTAMPADD
只能用作 ODBC
标量函数(使用大括号语法)。
可以使用 DATEADD
通用函数对时间戳执行类似的时间/日期修改操作。
Interval Types
间隔类型参数可以是以下时间戳间隔之一:
SQL_TSI_FRAC_SECOND
SQL_TSI_SECOND
SQL_TSI_MINUTE
SQL_TSI_HOUR
SQL_TSI_DAY
SQL_TSI_WEEK
SQL_TSI_MONTH
SQL_TSI_QUARTER
SQL_TSI_YEAR
这些时间戳间隔可以使用单引号或双引号来指定,带或不带引号。它们不区分大小写。
增加或减少时间戳间隔会导致其他间隔被适当地修改。例如,增加午夜过后的小时数会自动增加天数,而这又会增加月数,依此类推。 TIMESTAMPADD
总是返回一个有效的日期,考虑到一个月的天数,并计算闰年。例如,将 1 月 31 日增加一个月会返回 2 月 28 日(该月中的最高有效日期),除非指定的年份是闰年,在这种情况下它会返回 2 月 29 日。
可以按三位精度的小数秒递增或递减。将小数秒指定为千分之一秒的整数计数(001 到 999)。
DATEADD
和 TIMESTAMPADD
处理季度(3 个月间隔); DATEDIFF
和 TIMESTAMPDIFF
不处理宿舍。
%TimeStamp 格式化
如果 timestamp-exp
参数采用 %Library.TimeStamp
数据类型格式 (yyyy-mm-dd hh:mm:ss.ffff
),则适用以下规则:
- 如果
timestamp-exp
仅指定时间值,则在计算生成的时间戳之前,timestamp-exp
的日期部分设置为“1900-01-01”
。 - 如果
timestamp-exp
仅指定一个日期值,则在计算结果时间戳之前,timestamp-exp
的时间部分会设置为“00:00:00”
。 timestamp-exp
可以包括或省略小数秒。timestamp-exp
可以包含任意位数的精度,但间隔类型SQL_TSI_FRAC_SECOND
指定精确的三位精度。尝试指定小于或大于三位数的SQL_TSI_FRAC_SECOND
可能会产生不可预知的结果。
范围和值检查
TIMESTAMPADD
对 %Library.TimeStamp
输入值执行以下检查:
- 在执行任何
TIMESTAMPADD
操作之前,timestamp-exp
的所有指定部分都必须有效。 - 日期字符串必须完整且格式正确,其中包含适当数量的元素和每个元素的数字,以及适当的分隔符。年份必须指定为四位数。无效的日期值会导致
SQLCODE -400
错误。 - 日期值必须在有效范围内。年:
0001
到9999
。月:1 到 12。日:1 到 31。小时:00 到 23。分:0 到 59。秒:0 到 59。一个月中的天数必须与月和年相匹配。例如,日期“02–29”
仅在指定年份是闰年时有效。无效的日期值会导致SQLCODE -400
错误。 - 返回的递增(或递减)年份值必须在
0001
到9999
范围内。超出此范围递增或递减返回 。 - 小于
10
的日期值可以包括或省略前导零。不允许使用其他非规范整数值。因此,Day
值“07”
或“7”
有效,但“007”
、“7.0”
或“7a”
无效。小于10
的日期值始终以前导零返回。 - 时间值可以全部或部分省略。如果
timestamp-exp
指定了不完整的时间,则为未指定的部分提供零。 - 小于
10
的小时值必须包含前导零。省略此前导零会导致SQLCODE -400
错误。
示例
以下示例将 1
周添加到原始时间戳:
SELECT {fn TIMESTAMPADD(SQL_TSI_WEEK,1,'2017-12-20 12:00:00')}
以下示例将 5
个月添加到原始时间戳:
SELECT {fn TIMESTAMPADD(SQL_TSI_MONTH,5,'2022-12-20 12:00:00')}
以下示例将原始时间戳增加 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')}
第138章 SQL函数 TIMESTAMPADD相关推荐
- 第113章 SQL函数 QUARTER
文章目录 第113章 SQL函数 QUARTER 大纲 参数 描述 示例 第113章 SQL函数 QUARTER 日期函数,它将一年中的季度作为日期表达式的整数返回. 大纲 {fn QUARTER(d ...
- 第四十六章 SQL函数 DAY
文章目录 第四十六章 SQL函数 DAY 大纲 参数 描述 第四十六章 SQL函数 DAY 返回日期表达式的月份日期的日期函数. 大纲 DAY(date-expression){fn DAY(date ...
- 第153章 SQL函数 UCASE
文章目录 第153章 SQL函数 UCASE 大纲 参数 描述 示例 第153章 SQL函数 UCASE 将字符串中的所有小写字母转换为大写字母的大小写转换函数. 大纲 UCASE(string-ex ...
- 第二十四章 SQL函数 CEILING
文章目录 第二十四章 SQL函数 CEILING 大纲 参数 描述 示例 第二十四章 SQL函数 CEILING 数值函数,返回大于或等于给定数值表达式的最小整数. 大纲 CEILING(numeri ...
- 第九十五章 SQL函数 MINUTE
文章目录 第九十五章 SQL函数 MINUTE 大纲 参数 描述 示例 第九十五章 SQL函数 MINUTE 返回日期时间表达式的分钟的时间函数. 大纲 {fn MINUTE(time-express ...
- 第130章 SQL函数 SQRT
文章目录 第130章 SQL函数 SQRT 大纲 参数 描述 示例 第130章 SQL函数 SQRT 返回给定数值表达式的平方根的数值函数. 大纲 SQRT(numeric-expression){f ...
- 第二十三章 SQL函数 CAST(二)
文章目录 第二十三章 SQL函数 CAST(二) 转换位值 示例 第二十三章 SQL函数 CAST(二) 转换位值 可以将expr值转换为BIT以返回0或1. 如果expr为1或任何其他非零数值,则返 ...
- 第九十四章 SQL函数 %MINUS
文章目录 第九十四章 SQL函数 %MINUS 大纲 参数 描述 示例 第九十四章 SQL函数 %MINUS 将数字转换为规范整理格式,然后反转符号的整理函数. 大纲 %MINUS(expressio ...
- 第105章 SQL函数 %OID
文章目录 第105章 SQL函数 %OID 大纲 参数 描述 示例 第105章 SQL函数 %OID 返回 ID 字段的 OID 的标量函数. 大纲 %OID(id_field) 参数 id_fiel ...
- 第157章 SQL函数 WEEK
文章目录 第157章 SQL函数 WEEK 大纲 参数 描述 日期验证 示例 第157章 SQL函数 WEEK 一个日期函数,它将一年中的第几周作为日期表达式的整数返回. 大纲 {fn WEEK(da ...
最新文章
- 智能车竞赛创意组别对应的FQA
- 短视频的生成,不要在技术上想当然
- fullpage 单屏高度超过屏幕高度,实现单屏内可以滚动并解决手机端单屏高度不正确的问题
- 成功解决 AttributeError: module ‘keras.engine.topology‘ has no attribute ‘load_weights_from_hdf5_group_b
- 【Linux】一步一步学Linux——file命令(37)
- python程序设计之文件_Python程序设计之文件操作(2)
- mysql sql优化
- 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)
- 基本数据结构—Trie
- 【框架设计】泛型的应用
- excel转置怎么操作_EXCEL的矩阵运算
- android如何用mumu模拟器,如何安装网易MuMu模拟器 MuMu模拟器怎么用
- 11的倍数c语言,11-1,5,11,12的倍数(容斥原理)
- 【JavaScript】JS高级-面向对象编程
- 30天不动如山计划(重要)
- 天下武功,无坚不破,唯快不破
- iOS开发者 如何突破自身技术瓶颈,成为别人眼中的 架构师?
- 负载均衡服务器性能数据,用缓存服务器负载均衡 提数据库查询效率
- failure: repodata/repomd.xml from docker-main-repo: [Errno 256] No more mirrors to try.
- 【LeetCode - 277】搜寻名人
热门文章
- office2007 安装出现的问题
- 李开复:Windows Vista研发失败故事
- SQL Server 验证身份证号码准确性
- Node.js接口可以被另一台电脑访问到
- bootstrap布局(一)
- android listview 含有edittext 数据错乱问题
- Leetcode每日一题 2024. 考试的最大困扰度 双指针思想到滑动窗口思想转变应用题
- Stream仅能操作一次java.lang.IllegalStateException: stream has already been operated upon or closed
- 远丰电商|经销商如何做B2B电商转型?
- 2021内蒙古安全员B证考试(安全员)模拟考试及(答案解析)