我有一个包含 13000 行的数据库。每行都包含“日期”列,现在采用这种格式(示例)2012-09-01 17:53:28
:,但我希望它们是 TIMESTAMP。
我应该运行什么查询来将所有名为“日期”的列从日期更新为所有行的时间戳?
谢谢
使用ALTER TABLE命令从一种类型转换为另一种类型非常简单:
ALTER TABLE table_name CHANGE old_date new_timestamp TIMESTAMP
如果您有大量数据和大量索引,则此过程可能需要一段时间才能完成。
我不确定您为什么要将这些切换为TIMESTAMP
类型,因为它的范围比DATETIME
. 差异已记录在案并且很重要。
目前还不清楚你在问什么。存在以下数据类型:date
、time
和。还有,这是自 1970-01-01 以来的秒数,但我认为这不是你所追求的。datetime
timestamp
UNIX_TIMESTAMP
我建议你阅读这个。
DATETIME 类型用于同时包含日期和时间部分的值。MySQL 以 'YYYY-MM-DD HH:MM:SS' 格式检索和显示 DATETIME 值。支持的范围是“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。
TIMESTAMP 数据类型用于同时包含日期和时间部分的值。TIMESTAMP 的范围为 '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC。
当您要转换列时,date
请执行以下操作:
ALTER TABLE yourTable MODIFY COLUMN yourDateColumn TIMESTAMP;
SELECT UNIX_TIMESTAMP('2012-09-01 17:53:28');
您可以在执行查询时仅使用UNIX_TIMESTAMP()函数将值作为时间戳返回。像这样:
mysqli_query("select UNIX_TIMESTAMP(date) as date from table");