我有一个包含以下列的表:
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语句来处理update
并在不使用代码服务器的情况下同时进行转换吗?作为代码服务器,我只需要这样做:
select each row => covert `date` to unix time stamp => update
会有类似SQL语句吗?
答案 0 :(得分:1)
如果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;
请参阅小提琴here。或者如果你只需要一个SELECT,你可以使用它:
SELECT id, title, UNIX_TIMESTAMP(STR_TO_DATE(`date`, '%d-%m-%Y')) `date`
FROM yourtable