首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将从另一个表中获得的值添加到所有行

问将从另一个表中获得的值添加到所有行
EN

Stack Overflow用户
提问于 2013-12-18 17:15:55
回答 1查看 37关注 0票数 1

我有两张桌子,一张叫slotLength,另一张叫时间表。下面是他们的描述:

代码语言:javascript
复制
+------------+------+------+-----+----------+-------+
| Field      | Type | Null | Key | Default  | Extra |
+------------+------+------+-----+----------+-------+
| slotLength | time | NO   | PRI | 00:00:00 |       |
+------------+------+------+-----+----------+-------+


+-----------+-------------+------+-----+----------+----------------+
| Field     | Type        | Null | Key | Default  | Extra          |
+-----------+-------------+------+-----+----------+----------------+
| dayId     | int(1)      | NO   | PRI | NULL     | auto_increment |
| dayName   | varchar(15) | YES  |     | NULL     |                |
| startHour | time        | YES  |     | 08:00:00 |                |
+-----------+-------------+------+-----+----------+----------------+

我知道他们没有最好的设计,但我仍然在学习。此外,他们只是一个实验,所以请忽略他们的错误在他们的期望。

在继续之前,让我们假设slotLenght表只包含一行,让我们调用它的值slotSize。

我想要计算startHour + slotSize * n,其中startHour表示调度表中startHour列的值,而n是一个数字。具体来说,让我们看一个例子,如果slotSize是"01:00:00“,而来自startHour的值是"09:00:00",那么startHour + slorSize *3的值应该是"12:00:00”。

查询应该是什么样的呢?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-18 20:18:55

我不确定你能不能在SQL中与时间域相乘。加法和减法是相当容易的,但是乘法会变得更加复杂。你可以用ADDTIME()来表示方程的一部分,但我不确定乘法部分。一些较重的数学可能会在这方面发挥作用。

以下是MySQL时间函数的列表

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

编辑:

也许类似于转换成秒,乘以,然后再转换回来的东西会起作用。我对MySQL并不太熟悉,所以希望有人会给你提供你想要的查询,但是这会让你开始自己尝试。

代码语言:javascript
复制
SELECT ADDTIME(startHour, SEC_TO_TIME(TIME_TO_SEC(slotSize) * 3)) AS Calculated
FROM Table, OtherTable

不确定是否需要^ Table,因此如果没有^Table,请忘记,如果不将^Table抛到其中以选择startHour。

我相信这和你要找的东西很接近。正如我所说的,不熟悉MySQL错误最有可能是等待,特别是ADDTIME()函数,因为我认为它需要日期部分才能工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20664358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档