文章目录

  • 第139章 SQL函数 TIMESTAMPDIFF
  • 大纲
  • 参数
  • 描述
  • %TimeStamp 格式化
  • 范围和值检查
  • 示例

第139章 SQL函数 TIMESTAMPDIFF

一个标量日期/时间函数,它返回指定日期部分的两个时间戳之间差异的整数计数。

大纲

{fn TIMESTAMPDIFF(interval-type,startdate,enddate)}

参数

  • interval-type - 返回值将表示的时间/日期间隔类型。
  • startdate - 时间戳值表达式。
  • enddate - 将与 startdate 进行比较的时间戳值表达式。

描述

TIMESTAMPDIFF 函数返回指定日期部分间隔(秒、天、周等)的两个给定时间戳之间的差异(即,从另一个中减去一个时间戳)。返回的值是一个 INTEGER,即两个时间戳之间的这些间隔数。 (如果 enddate 早于 startdate,则 TIMESTAMPDIFF 返回负 INTEGER 值。)

开始日期和结束日期是时间戳。这些时间戳可以是 %Library.TimeStamp 数据类型格式 (yyyy-mm-dd hh:mm:ss.ffff) 或 %Library.PosixTime 数据类型格式(编码的 64 位有符号整数)。

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

  • SQL_TSI_FRAC_SECOND

  • SQL_TSI_SECOND

  • SQL_TSI_MINUTE

  • SQL_TSI_HOUR

  • SQL_TSI_DAY

  • SQL_TSI_WEEK

  • SQL_TSI_MONTH

  • SQL_TSI_YEAR

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

TIMESTAMPDIFFDATEDIFF 不处理季度quarters (3 个月间隔)。

请注意,TIMESTAMPDIFF 只能用作 ODBC 标量函数(使用大括号语法)。可以使用 DATEDIFF 通用函数对时间戳执行类似的时间/日期比较操作。

%TimeStamp 格式化

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

  • 如果任一时间戳表达式仅指定时间值并且间隔类型指定日期间隔(天、周、月或年),则在计算结果间隔计数之前,时间戳的缺失日期部分默认为“1900–01–01” .
  • 如果任一时间戳表达式仅指定日期值并且间隔类型指定时间间隔(小时、分钟、秒、小数秒),则在计算结果间隔计数之前,时间戳的缺失时间部分默认为“00:00:00.000” .
  • 可以包含或省略任意位数精度的小数秒。 SQL_TSI_FRAC_SECOND 以千分之一秒的整数计数形式返回小数秒的差异(精度为三位数)。 %PosixTime 值始终包含六位精度。

范围和值检查

TIMESTAMPDIFF 对输入值执行以下检查。

  • startdateenddate 的所有指定部分必须有效,然后才能执行任何 TIMESTAMPDIFF 操作。
  • 日期字符串必须完整且格式正确,其中包含适当数量的元素和每个元素的数字,以及适当的分隔符。年份必须指定为四位数。无效的日期值会导致 SQLCODE -8 错误。
  • 日期值必须在有效范围内。年:0001 到 9999。月:1 到 12。日:1 到 31。小时:00 到 23。分:0 到 59。秒:0 到 59。一个月中的天数必须与月和年相匹配。例如,日期“02–29”仅在指定年份是闰年时有效。无效的日期值会导致 SQLCODE -8 错误。
  • 小于 10(月和日)的日期值可能包括或省略前导零。不允许使用其他非规范整数值。因此,Day“07”“7”有效,但“007”“7.0”“7a”无效。
  • 时间值可以全部或部分省略。如果 startdateenddate 指定了不完整的时间,则为未指定的部分提供零。
  • 小于 10 的小时值必须包含前导零。省略此前导零会导致 SQLCODE -8 错误。

示例

以下示例返回 7,因为第二个时间戳 (2017-12-20 12:00:00) 比第一个大 7 个月:

SELECT {fn TIMESTAMPDIFF(SQL_TSI_MONTH,'2017-5-19 00:00:00','2017-12-20 12:00:00')}7

以下示例返回 566,因为第二个时间戳 ('12:00:00')) 比第一个时间戳 (02:34:12) 大 566 分钟:

SELECT {fn TIMESTAMPDIFF(SQL_TSI_MINUTE,'02:34:12','12:00:00')}566

以下示例返回 -1440,因为第二个时间戳比第一个小一天(1440 分钟):

SELECT {fn TIMESTAMPDIFF(SQL_TSI_MINUTE,'2017-12-06','2017-12-05')}-1440

第139章 SQL函数 TIMESTAMPDIFF相关推荐

  1. 第四十三章 SQL函数 DATEDIFF

    文章目录 第四十三章 SQL函数 DATEDIFF 大纲 参数 描述 Datepart 参数 日期表达式格式 Years 分数秒 时间差异与时间格式无关 范围和值检查 错误处理 示例 第四十三章 SQ ...

  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 ...

最新文章

  1. mysql查询并设置高亮_Thinkphp3.2.3设置MySql主从读写分离后,简单调用主数据库查询
  2. boost::signals2::deconstruct相关的测试程序
  3. Wondows环境下配置Tomat
  4. DW06、DW07 锂电保护IC手册电路,锂电池过充过放过流短路保护芯片电路
  5. JavaScript 基础--- (正则表达式 / 事件监听与绑定)
  6. s7五杀大数据英雄_大数据公布新赛季拿五杀最多的英雄,韩信垫底,她却拿到手抽筋!...
  7. python str 索引_一步一步学Python3(小学生也适用) 第九篇: 字符串(str)类型(中)...
  8. ios苹果应用ipa一键签名工具_ios签名何以做到不越狱不上架也能安装ipa文件?
  9. vscode超好玩好用的插件
  10. 广发银行薪资待遇JAVA_广发银行薪资待遇如何?
  11. 操作系统系列(三)——编译和链接
  12. 中国计算机学会(CCF)推荐中文科技期刊目录(2020年发布,官网转载)
  13. linux加载和卸载驱动模块出现 'XXX': device or resource busy 错误提示
  14. python 二进制与十进制之间的转换
  15. ABAP CDS VIEW WITH ASSOCIATION示例
  16. 乐播:手机投屏和镜像有什么区别?
  17. skywalking服务端_skywalking-01-搭建skywalking服务端
  18. 图片不大于100kb怎么调?怎么自定义压缩图片大小?
  19. 测试中case是什么
  20. 已下载TensorFlow却为什么无法调用?

热门文章

  1. 华为手机备忘录的妙用——8个小技巧总结
  2. vue基于element时间日期组件上传多个时间转字符串(限制今天以前不能选)
  3. 用Django创建一个简单网页
  4. 小程序直播页面遮罩及按钮设置
  5. Spring第24篇:父子容器详解
  6. 工作流流程编辑器的几种解决方案
  7. php7 setcookie无效_PHP setcookie()之前不能有任何输出
  8. 现代大学英语精读第二版(第二册)学习笔记(原文及全文翻译)——1A - Another School Year—What For?(又一学年——为了什么?)
  9. 撤销对计算机所有的更改 不断重启,win10更新失败撤销更改怎么办
  10. 新型冠状病毒席卷全国 Filecoin如何在突发卫生事件中赋能抗疫