mysql - 如何在 SQL 中获取日期行差异
问题描述
我有一个像下面这样的表
表格1
id date
--------------------
12 20-04-2019 12:35
2 20-04-2019 12:55
11 20-04-2019 11:57
7 20-04-2019 12:00
5 20-04-2019 12:05
我想得到如下
id date diff
----------------------------------------
12 20-04-2019 12:35 0
2 20-04-2019 12:55 20-04-2019 00:20
11 20-04-2019 11:57 20-04-2019 00:20
7 20-04-2019 12:00 20-04-2019 00:03
5 20-04-2019 12:05 20-04-2019 00:05
请帮我。
解决方案
请找到包含您场景示例数据的演示:
DECLARE @TestTable TABLE (Id INT, DateValue DATETIME)
INSERT INTO @TestTable (Id, DateValue) VALUES
(12 , '04-20-2019 12:35'),
(2 , '04-20-2019 12:55'),
(11 , '04-20-2019 11:57'),
(7 , '04-20-2019 12:00'),
(5 , '04-20-2019 12:05');
SELECT Id,
DateValue,
CONVERT(VARCHAR(5), DATEADD(minute, DATEDIFF(MINUTE, LAG(DateValue) OVER (ORDER BY (SELECT NULL)), DateValue), 0), 114) AS Diff
FROM @TestTable;
输出:
Id DateValue Diff
------------------------------------
12 2019-04-20 12:35:00.000 NULL
2 2019-04-20 12:55:00.000 00:20
11 2019-04-20 11:57:00.000 23:02
7 2019-04-20 12:00:00.000 00:03
5 2019-04-20 12:05:00.000 00:05
推荐阅读
- javascript - 如何从拉取的 mongodb 文档中添加字段
- pyspark - Pyspark 中的 DOB 字段
- sql - 从基于 SQL 的数据检索过渡到 Web 服务
- json - 如何以 JSON 格式读取 MySQL 数据
- javascript - 如何在 Node 中解析 POST 响应正文
- c# - c#:如果逗号数字的数量等于比例,Oracle/OracleDataReader 在小数点后添加额外的“0”
- mysql - Hibernate @CreationTimestamp @UpdateTimestamp 在不同的时区
- android - Android Gson - 反序列化空值与缺失值
- javascript - 无法在“FileReader”上执行“readAsBinaryString”:参数 1 不是“Blob”类型
- java - 从 base64 字符串或字节数组生成受密码保护的 PDF 并作为附件发送到电子邮件