Convert all colums in the rows from date to timestamp MySQL

别说谁变了你拦得住时间么 提交于 2020-01-04 03:46:32

问题


I have a database with 13000 rows. Each row contains the column 'date' which is now in this format (example): 2012-09-01 17:53:28, but I want them to be a TIMESTAMP.

What query should I run to update all columns named 'date' from date to timestamp on all rows?

Thanks


回答1:


It's pretty straightforward to convert from one type to another using the ALTER TABLE command:

ALTER TABLE table_name CHANGE old_date new_timestamp TIMESTAMP

This process may take a while to complete if you have a lot of data and a large number of indexes.

I'm not sure why you'd want to switch these to the TIMESTAMP type as that has a much more limited range than DATETIME. The differences are documented and important to know.




回答2:


It's unclear what you are asking for. There exist following datatypes: date, time, datetime and timestamp. And there's UNIX_TIMESTAMP, which is the seconds since 1970-01-01, but I don't think that's what you're after.

I suggest you read this.

The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.

The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.

When you want to convert your column date do:

ALTER TABLE yourTable MODIFY COLUMN yourDateColumn TIMESTAMP;



回答3:


SELECT UNIX_TIMESTAMP('2012-09-01 17:53:28');



回答4:


You can just use the UNIX_TIMESTAMP() function to return values as timestamp when doing a query. Like so:

mysqli_query("select UNIX_TIMESTAMP(date) as date from table");


来源:https://stackoverflow.com/questions/12408436/convert-all-colums-in-the-rows-from-date-to-timestamp-mysql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!