mysql时间类型的字段递增和递减,以及时间字段逐个递增的方法

内容纲要

一、mysql 时间类型的字段递增

如何对现有的日期字段增加一秒钟、增加一分钟、增加一小时、增加一天等

思路:先把日期修改为统一的时间如:2019-01-01 00:00:00,用时间函数加上行号或者自增列*5。

公式:可以根据连续递增的ID或者其他字段为条件来进行修改时间

          UPDATE 表名  set time = DATE_ADD(time, INTERVAL 5*id minute),`code`=id ;

函数说明:

(1)MySQL 为日期增加一个时间间隔:date_add()

now()      //now函数为获取当前时间

select date_add(now(), interval 1 day); – 加1天

select date_add(now(), interval 1 hour); -加1小时

select date_add(now(), interval 1 minute); – 加1分钟

select date_add(now(), interval 1 second); -加1秒

select date_add(now(), interval 1 microsecond);-加1毫秒

select date_add(now(), interval 1 week);-加1周

select date_add(now(), interval 1 month);-加1月

select date_add(now(), interval 1 quarter);-加1季

select date_add(now(), interval 1 year);-加1年

MySQL adddate(), addtime()函数,可以用date_add() 来替代。

(2)MySQL 为日期减去一个时间间隔:date_sub()

MySQL date_sub() 日期时间函数 和date_add() 用法一致。

MySQL 中subdate(),subtime()函数,建议,用date_sub()来替代。

二、mysql对数据库的date字段值进行逐个递增

先把日期修改为统一的时间如:2019-01-01 00:00:00,

UPDATE table SET DATE ='2020-09-01 09:30:00';

然后执行SQL语句,实现date字段值进行逐个递增,每一个值增加10秒,SQL语句如下:

SET @rownum =0;

UPDATE comm_sh_data SET DATE = DATE_ADD(DATE,INTERVAL+(@rownum := @rownum +10) SECOND);

三、mysql data_sub()函数

DATE_SUB() 函数从日期减去指定的时间间隔。

DATE_SUB(date,INTERVAL expr type)

date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。

type 参数可以是下列值:

Type 值
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

举例:

假设我们有如下的 "Orders" 表:

OrderId
ProductName
OrderDate
1
Jarlsberg Cheese
2008-11-11 13:23:44.657

现在,我们想要向 "OrderDate" 减去 5 天。

我们使用下面的 SELECT 语句:

SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate
FROM Orders

结果:

OrderId
SubtractDate
1
2008-11-06 13:23:44.657