如何在基于startTime的单个sql查询中添加和减去Subtract

时间:2011-11-02 11:42:04

标签: mysql sql

IF startTime = 11.30 AND endTime = 12.30

如果用户给出开始时间为11.20,它应该在startTime和endTime中减去10分钟[10]的时间,如果开始时间是11.50,则应该增加20分钟[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

1 个答案:

答案 0 :(得分:1)

您的说明和示例仍然不匹配,因此我只能根据您的评论给出一个非常概括的示例......

如何根据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子句中。

您需要重复startTimeendTime字段的逻辑。