mysql - 如何在基于 startTime 的单个 SQL 查询中添加和减去

标签 mysql sql

如果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 子句中。

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

关于mysql - 如何在基于 startTime 的单个 SQL 查询中添加和减去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7979738/

相关文章:

mysql - 如何比较数据库表中具有空值的列并显示没有空值的列?

mysql - 如何使用 JPA/Hibernate 设置复合主键的列顺序

mysql - 每小时复杂的 SQL 查询

sql - 简化 CTE 字符串连接?

php - MySQL Distinct 和 LEFT JOIN 返回重复

mysql - 我可以使用 mysql 连接到 SQL Server 吗?

Toad for MySQL 上的 MySQL 样式选项卡

php - SQL 内部连接和限制记录

mysql - 留言板结构数据库

sql - HQL 加入 - 预期加入的路径! hibernate