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