需要查找结果中多行的 2 个时间戳之间的时差 sql table
Need to find time difference in hours between 2 timestamps for multiple rows in a result sql table
我有 3 个 table 在其上执行了某些操作并且能够得到以下 table Table1
OID SID OID_create SID_create
817953 951261 2020-05-01 00:00:16 2020-05-01 10:15:32
817953 951407 2020-05-01 00:00:16 2020-05-01 10:30:13
817954 952564 2020-05-01 00:00:16 2020-05-01 12:01:33
817954 954544 2020-05-01 00:00:16 2020-05-01 17:45:18
817955 956318 2020-05-01 00:00:16 2020-05-02 07:00:59
817956 959146 2020-05-01 00:00:16 2020-05-02 10:46:26
为了找到 SID_create 和 OID_create 的区别,我使用了以下查询
select OID, SID, OID_create, SID_create, (SID_create - OID_create) as Difference
from Table1
这导致 table 像这样
OID SID OID_create SID_create Difference
817953 951261 2020-05-01 00:00:16 2020-05-01 10:15:32 101516
817953 951407 2020-05-01 00:00:16 2020-05-01 10:30:13 102997
817954 952564 2020-05-01 00:00:16 2020-05-01 12:01:33 120117
817954 954544 2020-05-01 00:00:16 2020-05-01 17:45:18 174502
817955 956318 2020-05-01 00:00:16 2020-05-02 07:00:59 1070043
817956 959146 2020-05-01 00:00:16 2020-05-02 10:46:26 1104610
请帮助理解差异值是以秒、分钟、小时还是其他形式表示的。如果我直接在几个小时内得到结果,我更愿意,如何实现它
直接减去 MySQL 中的日期不是一个好主意。虽然这不会引发错误,但您可能会得到意想不到的结果。据我了解,每个日期都转换为数字表示形式(例如 '2020-05-01 00:00:16'
将变为 20200501000016
),然后将其减去。
在 MySQL 中,获取给定单位中迄今为止的表达式之间差异的一种简单方法是使用 date function timestampdiff()
:
timestampdiff(hour, OID_create, SID_create)
我有 3 个 table 在其上执行了某些操作并且能够得到以下 table Table1
OID SID OID_create SID_create
817953 951261 2020-05-01 00:00:16 2020-05-01 10:15:32
817953 951407 2020-05-01 00:00:16 2020-05-01 10:30:13
817954 952564 2020-05-01 00:00:16 2020-05-01 12:01:33
817954 954544 2020-05-01 00:00:16 2020-05-01 17:45:18
817955 956318 2020-05-01 00:00:16 2020-05-02 07:00:59
817956 959146 2020-05-01 00:00:16 2020-05-02 10:46:26
为了找到 SID_create 和 OID_create 的区别,我使用了以下查询
select OID, SID, OID_create, SID_create, (SID_create - OID_create) as Difference
from Table1
这导致 table 像这样
OID SID OID_create SID_create Difference
817953 951261 2020-05-01 00:00:16 2020-05-01 10:15:32 101516
817953 951407 2020-05-01 00:00:16 2020-05-01 10:30:13 102997
817954 952564 2020-05-01 00:00:16 2020-05-01 12:01:33 120117
817954 954544 2020-05-01 00:00:16 2020-05-01 17:45:18 174502
817955 956318 2020-05-01 00:00:16 2020-05-02 07:00:59 1070043
817956 959146 2020-05-01 00:00:16 2020-05-02 10:46:26 1104610
请帮助理解差异值是以秒、分钟、小时还是其他形式表示的。如果我直接在几个小时内得到结果,我更愿意,如何实现它
直接减去 MySQL 中的日期不是一个好主意。虽然这不会引发错误,但您可能会得到意想不到的结果。据我了解,每个日期都转换为数字表示形式(例如 '2020-05-01 00:00:16'
将变为 20200501000016
),然后将其减去。
在 MySQL 中,获取给定单位中迄今为止的表达式之间差异的一种简单方法是使用 date function timestampdiff()
:
timestampdiff(hour, OID_create, SID_create)