获取存储为VARCHAR的两次之间的差异

时间:2014-03-12 15:48:23

标签: sql time type-conversion

所以我试图在开始时间和结束时间之间获得分钟差异,存储为11301415显然很简单:

SELECT finish_time - start_time FROM table

不够,我需要做些什么来正确计算差异,考虑到这是一个4位整数用于表示24小时的事实。(无可否认地存储时间的方式很糟糕)

1 个答案:

答案 0 :(得分:1)

真的很奇怪,这种存储时间的方式,是的:)尝试这个:

select ((floor(finish_time/100)*60)+mod(finish_time,floor(finish_time/100)*100))-((floor(start_time/100)*60)+mod(start_time,floor(start_time/100)*100)) from table;

这会将最后两位数字转换为分钟,将第一位数字(或第一位数字)转换为小时* 60(也称为分钟数),以便进行减法。

仅在(finish_time> start_time)时有效。我的意思是,如果有人从今天18:00(记录1800)到明天13:00(记录1300)预订了房间,那么finish_time小于start_time。小心这一点,我没有足够的信息,只有几天。