文章目录

  • 第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-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

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

  • 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)。

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

%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 错误。
  • 日期值必须在有效范围内。年:00019999。月:1 到 12。日:1 到 31。小时:00 到 23。分:0 到 59。秒:0 到 59。一个月中的天数必须与月和年相匹配。例如,日期“02–29”仅在指定年份是闰年时有效。无效的日期值会导致 SQLCODE -400 错误。
  • 返回的递增(或递减)年份值必须在 00019999 范围内。超出此范围递增或递减返回 。
  • 小于 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相关推荐

  1. 第113章 SQL函数 QUARTER

    文章目录 第113章 SQL函数 QUARTER 大纲 参数 描述 示例 第113章 SQL函数 QUARTER 日期函数,它将一年中的季度作为日期表达式的整数返回. 大纲 {fn QUARTER(d ...

  2. 第四十六章 SQL函数 DAY

    文章目录 第四十六章 SQL函数 DAY 大纲 参数 描述 第四十六章 SQL函数 DAY 返回日期表达式的月份日期的日期函数. 大纲 DAY(date-expression){fn DAY(date ...

  3. 第153章 SQL函数 UCASE

    文章目录 第153章 SQL函数 UCASE 大纲 参数 描述 示例 第153章 SQL函数 UCASE 将字符串中的所有小写字母转换为大写字母的大小写转换函数. 大纲 UCASE(string-ex ...

  4. 第二十四章 SQL函数 CEILING

    文章目录 第二十四章 SQL函数 CEILING 大纲 参数 描述 示例 第二十四章 SQL函数 CEILING 数值函数,返回大于或等于给定数值表达式的最小整数. 大纲 CEILING(numeri ...

  5. 第九十五章 SQL函数 MINUTE

    文章目录 第九十五章 SQL函数 MINUTE 大纲 参数 描述 示例 第九十五章 SQL函数 MINUTE 返回日期时间表达式的分钟的时间函数. 大纲 {fn MINUTE(time-express ...

  6. 第130章 SQL函数 SQRT

    文章目录 第130章 SQL函数 SQRT 大纲 参数 描述 示例 第130章 SQL函数 SQRT 返回给定数值表达式的平方根的数值函数. 大纲 SQRT(numeric-expression){f ...

  7. 第二十三章 SQL函数 CAST(二)

    文章目录 第二十三章 SQL函数 CAST(二) 转换位值 示例 第二十三章 SQL函数 CAST(二) 转换位值 可以将expr值转换为BIT以返回0或1. 如果expr为1或任何其他非零数值,则返 ...

  8. 第九十四章 SQL函数 %MINUS

    文章目录 第九十四章 SQL函数 %MINUS 大纲 参数 描述 示例 第九十四章 SQL函数 %MINUS 将数字转换为规范整理格式,然后反转符号的整理函数. 大纲 %MINUS(expressio ...

  9. 第105章 SQL函数 %OID

    文章目录 第105章 SQL函数 %OID 大纲 参数 描述 示例 第105章 SQL函数 %OID 返回 ID 字段的 OID 的标量函数. 大纲 %OID(id_field) 参数 id_fiel ...

  10. 第157章 SQL函数 WEEK

    文章目录 第157章 SQL函数 WEEK 大纲 参数 描述 日期验证 示例 第157章 SQL函数 WEEK 一个日期函数,它将一年中的第几周作为日期表达式的整数返回. 大纲 {fn WEEK(da ...

最新文章

  1. 智能车竞赛创意组别对应的FQA
  2. 短视频的生成,不要在技术上想当然
  3. fullpage 单屏高度超过屏幕高度,实现单屏内可以滚动并解决手机端单屏高度不正确的问题
  4. 成功解决 AttributeError: module ‘keras.engine.topology‘ has no attribute ‘load_weights_from_hdf5_group_b
  5. 【Linux】一步一步学Linux——file命令(37)
  6. python程序设计之文件_Python程序设计之文件操作(2)
  7. mysql sql优化
  8. 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)
  9. 基本数据结构—Trie
  10. 【框架设计】泛型的应用
  11. excel转置怎么操作_EXCEL的矩阵运算
  12. android如何用mumu模拟器,如何安装网易MuMu模拟器 MuMu模拟器怎么用
  13. 11的倍数c语言,11-1,5,11,12的倍数(容斥原理)
  14. 【JavaScript】JS高级-面向对象编程
  15. 30天不动如山计划(重要)
  16. 天下武功,无坚不破,唯快不破
  17. iOS开发者 如何突破自身技术瓶颈,成为别人眼中的 架构师?
  18. 负载均衡服务器性能数据,用缓存服务器负载均衡 提数据库查询效率
  19. failure: repodata/repomd.xml from docker-main-repo: [Errno 256] No more mirrors to try.
  20. 【LeetCode - 277】搜寻名人

热门文章

  1. office2007 安装出现的问题
  2. 李开复:Windows Vista研发失败故事
  3. SQL Server 验证身份证号码准确性
  4. Node.js接口可以被另一台电脑访问到
  5. bootstrap布局(一)
  6. android listview 含有edittext 数据错乱问题
  7. Leetcode每日一题 2024. 考试的最大困扰度 双指针思想到滑动窗口思想转变应用题
  8. Stream仅能操作一次java.lang.IllegalStateException: stream has already been operated upon or closed
  9. 远丰电商|经销商如何做B2B电商转型?
  10. 2021内蒙古安全员B证考试(安全员)模拟考试及(答案解析)