我有一个包含以下列的表格:
id | title | date
1 | Title A | 15-06-2013
2 | Title B | 25-06-2013
3 | Title C | 05-07-2013
4 | Title D | 19-09-2013
现在我需要将 date
列更改为 Unix timestamp
所以它可以是这样的:
id | title | date
1 | Title A | 1756346212
2 | Title B | 1883216212
3 | Title C | 1227346212
4 | Title D | 1956436212
我可以使用 SQL 语句在不使用代码服务器的情况下同时处理更新
和转换吗?作为代码服务器我只需要这样做:
select each row => covert `date` to unix time stamp => update
与 SQL 语句类似吗?
最佳答案
如果 date 是 varchar 列,并且您想将其转换为 unix 时间戳,我会这样做:
ALTER TABLE yourtable ADD COLUMN unixdate int;
UPDATE yourtable
SET unixdate = UNIX_TIMESTAMP(STR_TO_DATE(date, '%d-%m-%Y'));
ALTER TABLE yourtable DROP COLUMN date;
请参阅 fiddle here 。或者,如果您只需要 SELECT,您可以使用:
SELECT id, title, UNIX_TIMESTAMP(STR_TO_DATE(`date`, '%d-%m-%Y')) `date`
FROM yourtable
关于mysql - 在不使用代码服务器的情况下同时更新和转换列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15475248/