当前位置:网站首页>SQL函数 TIMESTAMPDIFF
SQL函数 TIMESTAMPDIFF
2022-08-01 16:02:00 【用户7741497】
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_SECONDSQL_TSI_SECONDSQL_TSI_MINUTESQL_TSI_HOURSQL_TSI_DAYSQL_TSI_WEEKSQL_TSI_MONTHSQL_TSI_YEAR
这些时间戳间隔可以使用单引号或双引号来指定,带或不带引号。它们不区分大小写。
TIMESTAMPDIFF 和 DATEDIFF 不处理季度quarters (3 个月间隔)。
请注意,TIMESTAMPDIFF 只能用作 ODBC 标量函数(使用大括号语法)。可以使用 DATEDIFF 通用函数对时间戳执行类似的时间/日期比较操作。
%TimeStamp 格式化
如果 startdate 或 enddate 参数采用 %Library.TimeStamp 数据类型格式 (yyyy-mm-dd hh:mm:ss.ffff),则适用以下规则:
- 如果任一时间戳表达式仅指定时间值并且间隔类型指定日期间隔(天、周、月或年),则在计算结果间隔计数之前,时间戳的缺失日期部分默认为
“1900–01–01”. - 如果任一时间戳表达式仅指定日期值并且间隔类型指定时间间隔(小时、分钟、秒、小数秒),则在计算结果间隔计数之前,时间戳的缺失时间部分默认为
“00:00:00.000”. - 可以包含或省略任意位数精度的小数秒。
SQL_TSI_FRAC_SECOND以千分之一秒的整数计数形式返回小数秒的差异(精度为三位数)。%PosixTime值始终包含六位精度。
范围和值检查
TIMESTAMPDIFF 对输入值执行以下检查。
startdate和enddate的所有指定部分必须有效,然后才能执行任何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”无效。 - 时间值可以全部或部分省略。如果
startdate或enddate指定了不完整的时间,则为未指定的部分提供零。 - 小于 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边栏推荐
- 使用Canvas实现网页鼠标签名效果
- Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
- 五分钟带你上手ShardingJDBC实现MySQL分库分表
- 华盛顿大学、Allen AI 等联合 | RealTime QA: What's the Answer Right Now?(实时 QA:现在的答案是什么?)
- Next-ViT学习笔记
- uniapp 获取cookie与携带cookie请求数据
- 重庆银河证券股票开户安全吗,是正规的证券公司吗
- LeetCode50天刷题计划(Day 7—— 字符串转换整数 (atoi) 12.20-15.20)
- shell 基础之函数编写
- mysql源码分析——聚簇索引
猜你喜欢

Stored procedures in MySQL (detailed)

会议OA项目(六)--- (待开会议、历史会议、所有会议)

产品力无提升的雷克萨斯新款ES ,为何敢于涨价?

Timezone setting in MySQL

打破文件锁限制,以存储力量助力企业增长新动力

珠海市生物安全P3实验室主体结构封顶

gconf/dconf编程实战(1)gconf和dconf介绍

南京科技大学、中国电子科技第28研究所等联合|MLRIP: Pre-training a military language representation model with informative factual knowledge and professional knowledge base(预训练具有丰富事实知识和专业知识库的军事语言表示模型)

p5js炫酷网页流光动画

“查找附近的商铺”|Geohash+MySQL实现地理位置筛选
随机推荐
shell 基础之函数编写
LeetCode50天刷题计划(Day 10—— 三数之和(20.50-22.40)
SQL query data and sorting
向mysql 传数据 这个字符串长度有限制么
moxa串口服务器配置说明(moxa串口驱动)
A full review of mainstream timed task solutions
网站2D看板娘收集的可用的模型
Arduino无线下载 Arduino USB接口无线自动下载程序
信息录入率百分百上海强化施工现场建筑工人实名制管理
Spark: Cluster Computing with Working Sets
js邯郸市地图网页源码下载
HDU 2602: Bone Collector ← 0-1背包问题
untiy Resorces目录动态加载资源
重庆银河证券股票开户安全吗,是正规的证券公司吗
【repo】SyntaxError: invalid syntax
wordpress模板函数说明备注整理收藏
五分钟带你上手ShardingJDBC实现MySQL分库分表
canvas粒子雨动画js特效
Could not write header for output file #0 (incorrect codec parameters ?): ……
测试技术|白盒测试以及代码覆盖率实践