如果startTime=11.30并且endTime=12.30
如果用户指定的开始时间为 11.20,则应在 startTime 和 endTime 中减去十分钟[10],如果开始时间为 11.50,则应添加二十分钟[20]
如何在单个 SQL 查询中实现这一目标
output: if the startTime =11.20
startTime=11.20
endTime=12.20
output : if the startTime =11.50
startTime=11.50
endTime=12.50
最佳答案
您的描述和示例仍然不匹配,因此我只能根据您的评论给出一个非常笼统的示例...
如何根据 CASE 语句添加或减去间隔...
CASE
WHEN MINUTE(startTime) = 20 THEN DATE_ADD(startTime, -10 MINUTES)
WHEN MINUTE(startTime) = 50 THEN DATE_ADD(startTime, 20 MINUTES)
ELSE NULL
END AS newStartTime,
CASE
WHEN MINUTE(startTime) = 20 THEN DATE_ADD(endTime, -10 MINUTES)
WHEN MINUTE(startTime) = 50 THEN DATE_ADD(endTime, 20 MINUTES)
ELSE NULL
END AS newEndTime
您可以拥有任意数量的 WHEN 子句,将 MINUTE(startTime) = 20
条件更改为您喜欢的任何内容,并在 THEN
子句。然后,如果您的情况与任何 WHEN
子句都不匹配,请将所需的输出放入 ELSE
子句中。
您需要对 startTime
和 endTime
字段重复逻辑。
关于mysql - 如何在基于 startTime 的单个 SQL 查询中添加和减去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7979738/