MySQL数据库 之 SQL实现 timestamp 型与 int 型字段值相加

SQL实现 timestamp 型与 int 型字段值相加

  • 一、需求
  • 二、解决方案
  • 三、举例说明

一、需求

在日常工作中我们可能会遇到 timestamp 型的字段(如会议开始时间)与 int 型的字段(如会议的持续时间)相加的情形。 MySQL 提供了一个 DATE_ADD() 函数可以实现我们需要的功能。

二、解决方案

MySQL 的 DATE_ADD() 函数向日期添加指定的时间间隔。

方法语法:

DATE_ADD(date, INTERVAL expr type)

date 参数是合法的日期表达式, MySQL 中的 timestamp 类型即可。
expr 参数是您希望添加的时间间隔。
type 参数是增加时间间隔的类型, 可以是下列值:

type 可选参数
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECON
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

三、举例说明

假如我们有如下的表:

id		meeting_name 	start_time				duration
1		cybeyond		2018-12-12 12:12:12		7200

表明有一个叫 cybeyond 的会议将在 2018-12-12 12:12:12 召开, 预计会议持续时间为 2 小时(7200 秒)。

如果我们想要使用 cybeyond 会议的结束时间 end_time, 而数据库中只存在该会议的开始时间(start_time)和预计持续时间(duration), 但二者相加的结果就是我们需要的结束时间 —— end_time, 所以我们可以使用如下 SQL 语句:

mysql> SELECT DATE_ADD(start_time, INTERVAL duration SECOND) AS end_time FROM reserve;
end_time
2018-12-12 14:12:12

使用 date_add() 函数, 可以避免很多不必要的麻烦, 而且不必将数据取出来进行二次计算, 提高了程序的运行效率。

你可能感兴趣的:(MySQL数据库)