我有3个表,我在上面执行某些操作,并能够得到下表表1
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\u create和oid\u 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
请帮助理解差值是否以秒、分、小时或其他形式表示。我更希望我能在几个小时内直接得到结果,如何实现它
1条答案
按热度按时间sf6xfgos1#
在mysql中直接减去日期不是一个好主意。虽然这不会引起错误,但很可能会得到意外的结果。据我所知,每个日期都变成了数字表示(例如
'2020-05-01 00:00:16'
会变成20200501000016
),然后减去。在mysql中,获取给定单元中to-date表达式之间差异的一种简单方法是使用date函数
timestampdiff()
: