这个问题与这个问题有关
我有一个字段,它是一个时间字段(它不需要是一个日期时间字段,因为日期部分在这里没有意义).我要添加的值是在几分钟内的另一个字段中.
所以基本上,我想在时间值上添加分钟.我已经尝试过DATE_ADD函数,但它希望日期是datetime,并设置datepart.我也尝试过ADDTIME函数,但问题是持续时间字段是整分钟,而不是格式为hh:mm:ss,所以它只是将其添加为秒.
有谁知道这样做的方法?
[编辑]
这是当前的查询:
SELECT ADDTIME(startTime, duration * 60), startTime, duration FROM tblAppointment
JOIN tblThreatment ON tblThreatment.threatmentid = tblAppointment.threatment_id;
Run Code Online (Sandbox Code Playgroud)
这就是结果:
+-----------------------------------+-----------+----------+
| ADDTIME(startTime, duration * 60) | startTime | duration |
+-----------------------------------+-----------+----------+
| 09:18:00 | 09:00:00 | 30 |
| 10:09:00 | 10:00:00 | 15 |
| 09:09:00 | 09:00:00 | 15 |
| 10:57:00 | 10:30:00 | 45 |
+-----------------------------------+-----------+----------+
Run Code Online (Sandbox Code Playgroud)
Rob*_*ban 23
Addtime肯定是要走的路......只需添加一定的分钟数即可:
AddTime('00:00:00', '00:10:00')
Run Code Online (Sandbox Code Playgroud)
这将为第一个值增加10分钟.
您可以在这里阅读dev.mysql.com上的更多信息:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_addtime
编辑:
除了你的评论.如果您以格式mm
和其他方式获取要添加的值,则可以使用该SEC_TO_TIME()
函数解析时间值.像这样:
SELECT ADDTIME(startTime, SEC_TO_TIME(duration*60)), startTime, duration
FROM tblAppointment
JOIN tblThreatment ON tblThreatment.threatmentid = tblAppointment.threatment_id;
Run Code Online (Sandbox Code Playgroud)
这将返回hh:mm:ss
分钟格式的时间.
从日期和时间添加和减去间隔的简单方法是使用+
or-
和单词INTERVAL
:
SELECT startTime + INTERVAL 10 MINUTE
Run Code Online (Sandbox Code Playgroud)
您可以添加和减去秒、分、天、周、月等。完整列表在这里https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html #function_date-add
也可以使用 INTERVAL 和 + 或 - 运算符来执行日期算术:
Run Code Online (Sandbox Code Playgroud)date + INTERVAL expr unit date - INTERVAL expr unit
如果另一侧的表达式是日期或日期时间值,则 + 运算符的任一侧都允许使用 INTERVAL expr 单元。对于 - 运算符,INTERVAL expr 单位只允许在右侧,因为从间隔中减去日期或日期时间值是没有意义的。
归档时间: |
|
查看次数: |
25719 次 |
最近记录: |