我有一个数据库如下。
| p_id | p_start_date | p_start_time | p_end_date | p_end_time | p_order |
| 2 | 2017-06-01 | 00:00 | 2017-06-01 | 01:00 | 1 |
| 4 | 2017-06-01 | 01:00 | 2017-06-01 | 02:15 | 2 |
| 1 | 2017-06-02 | 00:00 | 2017-06-02 | 01:30 | 3 |
| 3 | 2017-06-03 | 00:00 | 2017-06-03 | 00:30 | 4 |
我想在15分钟内移动p_id 2和4。 我将如何使用以下内容执行此操作:
UPDATE
press as p
SET
p.p_start_date = cast(DATE_ADD(CONCAT(p.p_start_date, ' ', p.p_start_time ), INTERVAL 15 MINUTE) as DATE),
p.p_start_time = cast(DATE_ADD(CONCAT(p.p_start_date, ' ', p.p_start_time), INTERVAL 15 MINUTE) as TIME),
p.p_end_date = cast(DATE_ADD(CONCAT(p.p_end_date, ' ', p.p_end_time), INTERVAL 15 MINUTE) as DATE),
p.p_end_time = cast(DATE_ADD(CONCAT(p.p_end_date, ' ', p.p_end_time), INTERVAL 15 MINUTE) as TIME),
p.p_order = p.p_order + 1
WHERE
p.p_order >= 1 AND p.p_order <= 2
但是我不知道最后p_order
会是什么,因为彼此之间可能会有很多工作。
你知道我怎么会发现这个吗?
答案 0 :(得分:0)
尝试选择在最后一个开始时没有结束的最小Id,例如:
secant(sec) / cosecant(cosec)
如果您可以使用DateTime而不是2个单独的字段,这会更容易,但