如果时差超过一个小时,我想显示结果。以下是示例查询:
SELECT
locator_id,
NAME,
DATE,
destination,
time_leave,
time_return,
isOfficial
FROM
locator_table 这就是结果:
locator_id name date destination time_leave time_return isOfficial
---------- ------ ---------- ----------- ---------- ----------- ------------
1 ALEX 2019-07-31 FRANCE 09:40 AM 09:50 AM 0
2 MARK 2019-07-30 GERMANY 11:00 AM 01:00 PM 1
3 JOHN 2019-07-30 TAIWAN 11:15 AM 12:00 PM 1
4 FOO 2019-07-31 KOREA 01:20 PM 02:30 PM 1
5 BAR 2019-07-30 JAPAN 01:50 PM 02:00 PM 0现在,如你所见,locator_id 2 and 4是时差超过一个小时的那些。这应该是结果:
locator_id name date destination time_leave time_return isOfficial
---------- ------ ---------- ----------- ---------- ----------- ------------
2 MARK 2019-07-30 GERMANY 11:00 AM 01:00 PM 1
4 FOO 2019-07-31 KOREA 01:20 PM 02:30 PM 1如何做到这一点?
发布于 2019-07-30 14:22:39
你可以使用MySQL的TIMEDIFF函数,它应该类似于:
select *
from locator_table
where
hour(timediff(time_leave, time_return)) >= 1
and
minute(timediff(time_leave, time_return)) >= 1发布于 2019-07-30 14:32:15
如果time_leave和time_return列属于TIME或DATETIME类型,则可以使用MySQL TIMEDIFF函数计算差值,使用HOUR函数从差值中提取小时部分,并相应地选择行。
这条语句可以做到这一点:
SELECT
locator_id,
NAME,
DATE,
destination,
time_leave,
time_return,
isOfficial
FROM
locator_table
WHERE
HOUR(TIMEDIFF(time_return, time_leave)) > 1请注意,这只适用于DATETIME或TIME类型的值。如果值是VARCHAR或CHAR类型的,则需要事先将其转换为TIME或DATETIME类型。
https://stackoverflow.com/questions/57265375
复制相似问题