0

我有一个包含以下列的表格:

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

我可以update在不使用代码服务器的情况下使用 SQL 语句同时处理和转换吗?作为代码服务器,我只需要这样做:

select each row => covert `date` to unix time stamp => update

SQL语句会是这样的吗?

4

1 回答 1

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;

在此处查看小提琴。或者,如果你只需要一个 SELECT,你可以使用这个:

SELECT id, title, UNIX_TIMESTAMP(STR_TO_DATE(`date`, '%d-%m-%Y')) `date`
FROM yourtable
于 2013-03-18T11:10:43.860 回答