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
|