mysql - 如何将字段从时间戳转换为日期时间

标签 mysql sql

我有一个遗留数据库,其中有包含字段的表: 开始日期时间戳, expiration_date DATETIME。

如果在具有不同时区的数据库上使用数据库,则会导致某些查询出现问题。 所以为了避免它们,我想将 start_date 转换为 DATETIME。我怎样才能安全地从 TIMESTAMP 转换为 DATETIME?如果我将 start_date 的类型从 TIMESTAMP 更改为 DATETIME,我不会丢失任何数据吗? mysql 如何将日期 TIMESTAMP 转换为 DATETIME?

最佳答案

我会这样做:

1) 创建一个新的datetime

ALTER TABLE mytable ADD COLUMN mydatetime DATETIME;

2) 使用时间戳值更新此列

UPDATE mytable SET mydatetime=FROM_UNIXTIME(UNIX_TIMESTAMP(mytimestamp));

3) 经过几次完整性检查后,删除timestamp

ALTER TABLE mytable DROP COLUMN mytimestamp;

这对您来说应该足够安全,因为您可以根据需要保留原始 timestamp 列。

这是一个sqlfiddle示例。

关于mysql - 如何将字段从时间戳转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24720700/

相关文章:

MySQL 两次分组和 COUNT

php - 不应在数据库 mysql PHP 上更新空白字段

mysql - 做 friend 系统需要mysql专家意见

javascript - 如何通过ajax load()函数发送图像文件并通过php插入mysql db显示在div中

sql - 如何获取 SQL Server 上受 BULK INSERT 影响的行数?

javascript - 实际 URL 在 php 中打开重定向页面

mysql - 如何连接 3 个表以获得两个表交替的结果

sql - 设计题: Filterable attributes, SQL

sql - PostgreSQL 删除每个组中除最新条目之外的所有条目

mysql - 如何更快地删除重复项?