バッチ変更時間とバッチ時間タイプ変換


1、datetimeタイプ日付増加/減少
UPDATE table_name SET col_name=DATE_ADD(INTERVAL number DAY)/DATE_SUB(INTERVAL number DAY);
--
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 

2、datetimeタイプをintタイプタイムスタンプに変換する
ALTER TABLE table_name ADD {COLUMN} col_name; 
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     

3、タイムスタンプをdatetimeタイプに変換する
ALTER TABLE table_name ADD {COLUMN} col_name;
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  

4、タイムスタンプ--時間の増減
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       

5、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

もう1つの実装方法:
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