计算查询中的小时数

时间:2017-09-22 17:54:04

标签: php mysql

我有一张桌子可以存储营业时间。

t1
----------------------
id  |  open  |  closed

存储小时数的两列是smallint类型,值如下所示:

  上午8:00

800
   2200 晚上10:00

     午夜

0

我需要计算业务开放的小时数。例如:

Open: 1000
Closed: 2200
Hours: 12

至少可以在查询中完成部分内容吗?或者我应该输出数据然后进行所有计算?

1 个答案:

答案 0 :(得分:0)

将其存储为smallint是有问题的。

你可以减去2200 - 1000 = 1200,然后除以1000得到小时数,但是当你有2200 - 1030 = 1130时你会遇到麻烦。 它可行,但为什么要让你的生活变得困难?

您可以将数据保留为time字段,然后使用timediffhttps://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 ...