如何将varchar(10)列转换为时间戳

lnxxn5zx  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(627)

我有一个带有varchar(10)列和时间戳数据的旧数据库表。
现在我正在那个数据库上使用laravelweb应用程序。
我需要将varchar(10)列转换为带有数据的时间戳。
以前我使用phpmyadmin(在备份副本上)更改了列类型,但所有数据都更改为0000000000。
我怎样才能做到这一点,没有任何数据丢失。

  1. timestamp varchar(10) utf8_general_ci No None
  2. ``` `sampel data:(in varchar) 1246251403 1246251404 1248771150`
h5qlskok

h5qlskok1#

使用将字符串转换为时间戳 from_unixtime() . 它会在短时间内运行良好 VARCHAR 列。
例子:

  1. create table mytable (oldts varchar(10), newts timestamp NULL);
  2. insert into mytable (oldts,newts) values ('1246251403', NULL);
  3. insert into mytable (oldts,newts) values ('1246251404', NULL);
  4. insert into mytable (oldts,newts) values ('1246251404', NULL);
  5. update mytable SET newts = from_unixtime(oldts);
  6. select oldts, newts from mytable;

结果:

  1. | oldts | newts |
  2. |------------|----------------------|
  3. | 1246251403 | 2009-06-29T04:56:43Z |
  4. | 1246251404 | 2009-06-29T04:56:44Z |
  5. | 1246251404 | 2009-06-29T04:56:44Z |

sql小提琴

展开查看全部

相关问题