我有一张桌子可以存储营业时间。
t1
----------------------
id | open | closed
存储小时数的两列是smallint
类型,值如下所示:
上午8:00800
午夜
2200 晚上10:000
我需要计算业务开放的小时数。例如:
Open: 1000
Closed: 2200
Hours: 12
至少可以在查询中完成部分内容吗?或者我应该输出数据然后进行所有计算?
答案 0 :(得分:0)
将其存储为smallint
是有问题的。
你可以减去2200 - 1000 = 1200,然后除以1000得到小时数,但是当你有2200 - 1030 = 1130时你会遇到麻烦。 它可行,但为什么要让你的生活变得困难?
您可以将数据保留为time
字段,然后使用timediff
(https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_timediff)
SELECT id, open, closed, TIMEDIFF(closed, open) AS hours FROM ...