MySQL更新历史时间数据

2018-07-27  本文已影响0人  Btone

问题描述:

公司数据库为MySQL,其中数据表(operation_log)的create_time字段用于存储创建时间,类型为bigint,现有两种格式的数据,老数据格式为:20180727101010,新数据格式是我们日常所见的时间戳,导致程序需要特殊处理,所以就想将老数据统一成时间戳。

解决思路:

首先要确定2个问题:

1、哪些数据需要更新?

create_time的值大于当前时间的毫秒值的数据都需要更新。因为老数据的值的长度为14位,时间戳的值为13位。

2、老数据如何转换为时间戳?

涉及到MySQL中的函数。DATE_FORMAT及UNIX_TIMESTAMP函数。

DATE_FORMAT函数作用为格式化时间;

UNIX_TIMESTAMP函数作用为日期时间转化为秒值。

功能实现:

UPDATE operation_log SET create_time = UNIX_TIMESTAMP(DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s')) * 1000 WHERE create_time > UNIX_TIMESTAMP() * 1000;


上一篇下一篇

猜你喜欢

热点阅读