最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql中使用sql命令將時間戳解析成datetime類型存入

 更新時間:2022年11月22日 10:06:02   作者:夢若辰宇  
這篇文章主要介紹了mysql中使用sql命令將時間戳解析成datetime類型存入,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

實現思路

需求

需要將本數據庫的數據進行處理(添加前綴),然后導入主數據庫。

但是當前數據庫記錄的create_time、update_time 是bigint 類型,存放的是時間戳。eg.1646124455

而主數據庫的 create_time、update_time 是 datetime 類型的字段,所以需要將時間戳解析成時間并存放到對應位置。

  • 給所有的表添加前綴
  • 給所有的表新增字段,用于存儲解析后的時間 即 datetime 類型
  • 解析時間戳字段,將解析后的時間存到對應的字段中
  • 刪除時間戳的字段
  • 將第二步新增的字段的名稱改成create_time、update_time

一、修改庫中所有表名,添加前綴

1.sql更改表名

rename table test to test1;

2.sql一次更改多個表名

rename table `name` to name1 , tel to tel1;

3.sql生成批量執(zhí)行的語句

select concat('rename table ',table_name,'  to hts_',table_name,';') 
from information_schema.tables 
where TABLE_SCHEMA ="demo";

4.執(zhí)行批量生成的所有語句

在這里插入圖片描述

二、給庫中所有的表添加字段

1.sql給表添加字段

alter table hts_name add column create_time int;

2.sql一次給表中添加多個字段

alter table hts_user_profile 
add column (create_time_date datetime , update_time_date datetime);

3.sql生成批量執(zhí)行的語句

select concat('alter table ',table_name,' add column (create_time_date datetime , update_time_date datetime);') from information_schema.tables 
where table_name like'hts_%'
and TABLE_SCHEMA ="hts";

三、將時間戳解析并賦值到新的字段

1.sql將表中a字段的值解析后賦值給b字段

update hts_user_profile 
set create_time_date = FROM_UNIXTIME(create_time,'%Y-%m-%d %H:%i:%s');
update hts_user_profile 
set update_time_date = FROM_UNIXTIME(update_time,'%Y-%m-%d %H:%i:%s');

2.sql一次更新多個字段的數據

update hts_user_profile set 
create_time_date = FROM_UNIXTIME(create_time,'%Y-%m-%d %H:%i:%s'),
update_time_date = FROM_UNIXTIME(update_time,'%Y-%m-%d %H:%i:%s');

3.sql生成批量執(zhí)行的語句

select concat('update ',table_name,' set create_time_date = FROM_UNIXTIME(create_time,"%Y-%m-%d %H:%i:%s");') 
from information_schema.tables where table_name like'hts_%';
select concat('update ',table_name,' set update_time_date = FROM_UNIXTIME(update_time,"%Y-%m-%d %H:%i:%s");') 
from information_schema.tables where table_name like'hts_%';

四、刪除庫中所有表的某個字段

1.sql將表的某個字段刪除

alter table hts_user_profile drop column create_time;

2.sql生成批量執(zhí)行的語句

select concat('alter table ',table_name,' drop column create_time;') 
from information_schema.tables where table_name like'hts_%';

五、修改庫中所有表的某個字段名稱

1.sql修改表中的某個字段名稱

ALTER TABLE hts_user_profile change create_time_date create_time datetime;

2.sql一次修改表的多個字段名稱

ALTER TABLE hts_user_profile 
CHANGE create_time_date create_time datetime,
CHANGE update_time_date update_time datetime;

3.sql生成批量執(zhí)行的語句

select concat('alter table ',table_name,' CHANGE create_time_date create_time datetime,CHANGE update_time_date update_time datetime;') 
from information_schema.tables where table_name like'hts_%';

匯總

/*
前提:項目庫存在本地mysql,從庫(需要數據遷移的庫)拷貝到本地數據庫;

1.修改所有的從庫表名,添加需要的前綴。
2.給所有的從庫表添加字段:create_time_date,update_time_date
3.將從庫所有的表讀取一遍,將時間戳轉成時間然后存在新字段中
4.刪除從表的create_time  和   update_time  字段
5.修改所有的create_time_date,update_time_date 字段名為 create_time  和   update_time
6.同步數據(可在Navicat執(zhí)行)
*/

-- 1.修改所有的從庫表名,添加需要的前綴。
select concat('alter table ',table_name,' rename to ',table_name) from information_schema.tables where table_name like'dmsck_%';

-- 2.給所有的從庫表添加字段:create_time_date,update_time_date
alter table hts_user_profile add column (create_time_date datetime , update_time_date datetime);

alter table hts_user_profile add column create_time int;

select concat('alter table ',table_name,' add column (create_time_date datetime , update_time_date datetime);') from information_schema.tables 
where table_name like'hts_%';

-- 3.將從庫所有的表讀取一遍,將時間戳轉成時間然后存在新字段中

update hts_user_profile set create_time_date = FROM_UNIXTIME(create_time,'%Y-%m-%d %H:%i:%s');
update hts_user_profile set update_time_date = FROM_UNIXTIME(update_time,'%Y-%m-%d %H:%i:%s');

SELECT * FROM hts_user_profile WHERE create_time != update_time;

select concat('update ',table_name,' set create_time_date = FROM_UNIXTIME(create_time,"%Y-%m-%d %H:%i:%s");') from information_schema.tables 
where table_name like'hts_%';
select concat('update ',table_name,' set update_time_date = FROM_UNIXTIME(update_time,"%Y-%m-%d %H:%i:%s");') from information_schema.tables 
where table_name like'hts_%';

-- 4.刪除從表的create_time  和   update_time  字段
alter table hts_user_profile drop column create_time;
alter table hts_user_profile drop column update_time;

select concat('alter table ',table_name,' drop column create_time;') from information_schema.tables 
where table_name like'hts_%';
select concat('alter table ',table_name,' drop column update_time;') from information_schema.tables 
where table_name like'hts_%';

-- 5.修改所有的create_time_date,update_time_date 字段名為 create_time  和   update_time

ALTER TABLE hts_user_profile CHANGE create_time_date create_time datetime,CHANGE update_time_date update_time datetime;

select concat('alter table ',table_name,' CHANGE create_time_date create_time datetime,CHANGE update_time_date update_time datetime;') from information_schema.tables 
where table_name like'hts_%';

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

始兴县| 元朗区| 石首市| 亚东县| 巴彦淖尔市| 凤翔县| 西乌| 方正县| 策勒县| 喀喇| 神木县| 汽车| 天津市| 洪雅县| 阳曲县| 温泉县| 徐水县| 蓬莱市| 玉环县| 高雄市| 化德县| 巴塘县| 石首市| 桂东县| 新宁县| 剑河县| 固阳县| 苏尼特左旗| 永仁县| 太原市| 登封市| 监利县| 岳池县| 岗巴县| 泾川县| 儋州市| 霍城县| 永修县| 平阳县| 安仁县| 花莲市|