UPDATE table_name SET col_name=DATE_ADD(INTERVAL number DAY) / DATE_SUB(INTERVAL number DAY);
-- <把所有日期加/减number天>
day:天 hour:小时 minute:分钟 second:秒 microsecond:毫秒
week:周 month:月 quarter:季 year:年
UPDATE nb_alarm_status SET create_date = DATE_ADD(create_date,INTERVAL 5 DAY); --增加5天; -5:增加-5天,即减少5天
UPDATE nb_alarm_status SET create_date = DATE_SUB(create_date,INTERVAL 6 DAY); --减少6天; -6:减少-6天,即增加6天
ALTER TABLE table_name ADD {COLUMN} col_name; <关键字column可以不写>
UPDATE table_name SET col_name=UNIX_TIMESTAMP(col_name1);
ALTER TABLE nb_alarm_status CREATE create_time_stamp INT(20) DEFAULT NULL; -- ,添加时间戳的列,关键字column可以不写;也可以不添加该列,直接转换<注意字段类型>;添加该列目的在于方便对比
UPDATE nb_alarm_status SET create_time_stamp=UNIX_TIMESTAMP(create_date); -- 将datetime类型转换成int类型时间戳
ALTER TABLE table_name ADD {COLUMN} col_name; <关键字column可以不写>
UPDATE table_name SET col_name=FROM_UNIXTIME(col_name1);
ALTER TABLE nb_alarm_status ADD tt datetime DEFAULT NULL; -- 添加datetime类型时间的列;也可以不添加该列,直接转换;添加该列目的在于方便对比
UPDATE nb_alarm_status SET tt=FROM_UNIXTIME(create_time_stamp); -- 将时间戳转换成datetime类型
TIMESTAMPADD(unit,interval,datetime_expr):可以实现这个功能
day:天 hour:小时 minute:分钟 second:秒 microsecond:毫秒
week:周 month:月 quarter:季 year:年
UPDATE nb_alarm_status SET create_time_stamp=UNIX_TIMESTAMP(TIMESTAMPADD(DAY,3,FROM_UNIXTIME(create_time_stamp))); -- 以天为单位,增加3天;先将create_date_stamp转换成datetime类型再进行计算
DATE_ADD/SUB(date,INTERVAL expr unit) -- data:要计算的时间;INTERVAL:关键字<不可少>;expr:表达式;unit:计算单位
expr unit 表达式和计算方式详解
'5:10' HOUR_MINUTE -- 5小时10分钟
'1:5:2' HOUR_SECOND -- 1小时5分钟2秒
'1 1:5:10' DAY_SECOND -- 1天1小时5分钟10秒
注意:‘天’和‘时间’之间有空格分开;DAY_SECOND:DAY-计算的开始时间单位,SECOND-计算的结束时间单位
SELECT DATE_ADD('2019-03-21 15:03:04',INTERVAL '1:5:2' HOUR_SECOND), -- 增加1小时5分钟2秒
DATE_ADD('2019-03-21 15:03:04',INTERVAL '10:15' MINUTE_SECOND), -- 增加10分钟15秒
DATE_ADD('2019-03-21 15:03:04',INTERVAL '1 10:15' DAY_MINUTE); -- 增加1天10小时15分钟
--> 2019-03-21 16:08:06
--> 2019-03-21 15:13:19
--> 2019-03-23 01:18:04
SELECT DATE_SUB('2019-03-21 15:03:04',INTERVAL '1:5:2' HOUR_SECOND), -- 减少1小时5分钟2秒
DATE_SUB('2019-03-21 15:03:04',INTERVAL '10:15' MINUTE_SECOND), -- 减少10分钟15秒
DATE_SUB('2019-03-21 15:03:04',INTERVAL '1 10:15' DAY_MINUTE); -- 减少1天10小时15分钟
--> 2019-03-21 13:58:02
--> 2019-03-21 14:52:49
--> 2019-03-20 04:48:04
另一种实现方式:
time ± INTERVAL expr unit -- time:要计算的时间;INTERVAL:关键字;expr:表达式;unit:计算单位
SELECT ('2019-04-02 14:19:51' + INTERVAL 2 HOUR),
('2019-04-02 14:19:51' + INTERVAL '2:10' HOUR_MINUTE),
('2019-04-02 14:19:51' + INTERVAL '1 2:10' DAY_MINUTE),
('2019-04-02 14:19:51' - INTERVAL 2 HOUR),
('2019-04-02 14:19:51' - INTERVAL '2:10' HOUR_MINUTE),
('2019-04-02 14:19:51' - INTERVAL '1 2:10' DAY_MINUTE);
--> 2019-04-02 16:19:51
--> 2019-04-02 16:29:51
--> 2019-04-03 16:29:51
--> 2019-04-02 12:19:51
--> 2019-04-02 12:09:51
--> 2019-04-01 12:09:51