如何将 varchar(10) 列转换为时间戳
How to convert varchar(10) column to timestamp
我有一个旧数据库 table,其中包含带有时间戳数据的 varchar(10) 列。
现在我正在该数据库上使用 laravel 网络应用程序。
我需要将 varchar(10) 列转换为带有数据的时间戳。
之前我使用 phpmyadmin 更改了列类型(在备份副本上),但所有数据都更改为 0000000000。
如何在不丢失任何数据的情况下正确执行此操作。
timestamp varchar(10) utf8_general_ci No None
sampel data:(in varchar)
1246251403
1246251404
1248771150
使用 from_unixtime()
将您的字符串转换为 时间戳 。它会 运行 在 VARCHAR
列上正常。
示例:
create table mytable (oldts varchar(10), newts timestamp NULL);
insert into mytable (oldts,newts) values ('1246251403', NULL);
insert into mytable (oldts,newts) values ('1246251404', NULL);
insert into mytable (oldts,newts) values ('1246251404', NULL);
update mytable SET newts = from_unixtime(oldts);
select oldts, newts from mytable;
结果:
| oldts | newts |
|------------|----------------------|
| 1246251403 | 2009-06-29T04:56:43Z |
| 1246251404 | 2009-06-29T04:56:44Z |
| 1246251404 | 2009-06-29T04:56:44Z |
我有一个旧数据库 table,其中包含带有时间戳数据的 varchar(10) 列。
现在我正在该数据库上使用 laravel 网络应用程序。
我需要将 varchar(10) 列转换为带有数据的时间戳。
之前我使用 phpmyadmin 更改了列类型(在备份副本上),但所有数据都更改为 0000000000。
如何在不丢失任何数据的情况下正确执行此操作。
timestamp varchar(10) utf8_general_ci No None
sampel data:(in varchar)
1246251403
1246251404
1248771150
使用 from_unixtime()
将您的字符串转换为 时间戳 。它会 运行 在 VARCHAR
列上正常。
示例:
create table mytable (oldts varchar(10), newts timestamp NULL);
insert into mytable (oldts,newts) values ('1246251403', NULL);
insert into mytable (oldts,newts) values ('1246251404', NULL);
insert into mytable (oldts,newts) values ('1246251404', NULL);
update mytable SET newts = from_unixtime(oldts);
select oldts, newts from mytable;
结果:
| oldts | newts |
|------------|----------------------|
| 1246251403 | 2009-06-29T04:56:43Z |
| 1246251404 | 2009-06-29T04:56:44Z |
| 1246251404 | 2009-06-29T04:56:44Z |