在MySQL中计算两列

时间:2014-03-01 09:27:35

标签: mysql calculated-columns

我有一个MySQL数据库,我有3列:

Day_hours
Day_minutes
All_day_hours

我将在JSP页面中有一些不同的表单字段,我可以在其中处理我工作的小时数。在我在不同地方工作的那一天,这意味着我需要fx来放入5 * Day_hours, Day_minutes and All_day_hours。所以问题是我想计算一天中的所有小时和分钟。所以,如果我fx工作:

1 job: 2 hours 15 minutes
2 job: 3 hours 45 minutes
3 job: 1 hours 10 minutes
4 job: 4 hours 40 minutes
5 job: 3 hours 15 minutes

这意味着如果我计算列“Day_minutes”它会给我结果125.我希望125分钟转换为小时,因此结果将是2小时5分钟。之后,必须将Day_hours和Day_minutes添加到Allday_hours列。所以Allday_hours是Day_hours + Day_minutes的总和

所以在MySQL数据库中的Fx有一个例子日的以下信息:

                Day_hours      Day_minutes       Allday_hours
1 job                  2              15               2.15
2 job:                 3              45               3.45
3 job:                 1              10               1.10
4 job:                 4              40               4.40
5 job:                 3              15               3.15

所以我的问题是,如何计算Allday_hours的Day_hours和Day_minutes,那么作业1的结果是2.15?

祝周末愉快。

最诚挚的问候 MADS

1 个答案:

答案 0 :(得分:1)

您不应该在Allday_hours中保存内容,因为这是多余的信息。

您可以从您拥有的数据中检索您想要的数据(没有问题)。例如

SELECT *, ((Day_hours*60 + Day_minutes)/60) AS Allday_hours FROM timedata...

无需实际保存它们。

顺便说一下,我认为2小时加15分钟加起来2.15之类的事情是相当奇怪的。所以我上面的查询计算相对的东西...如果你真的想要计算你的价值,你可以使用

SELECT *, (Day_hours + (Day_minutes / 100)) as Allday_hours FROM timedata

如果您真的想保存它,可以在更新语句中使用计算,例如

UPDATE timedata SET Allday_hours = (Day_hours + (Day_minutes / 100))