MySQL日期转换

时间:2013-08-26 14:16:07

标签: mysql sql

我在MySQL中有一个表,我有一个日期和时间列。此列的格式为01 February 2013 12:49:40。我想提取日期部分和时间部分以及月份部分。我正在使用month(01 February 2013 12:49:40)这个函数,但它正在抛出错误。我无法使用Substring,因为行的宽度不相等。我该怎么办。

1 个答案:

答案 0 :(得分:3)

首先将其转换为实际日期(您所拥有的只是文本,MySQL不知道它是约会对象)

 SELECT STR_TO_DATE(your_column, '%d %M %Y %H:%i:%s')

那么你可以使用像year(),month(),time()这样的函数来获得你想要的东西......

 SELECT YEAR(STR_TO_DATE(your_column, '%d %M %Y %H:%i:%s')) FROM your_table...

当然,将列更改为数据类型datetime或timestamp会更好。那么你每次都可以省去STR_TO_DATE()函数。

通过向表中添加列日期时间或时间戳来实现此目的

ALTER TABLE your_table ADD COLUMN your_column datetime;

然后用

“复制”你的专栏
UPDATE yourTable SET new_column = STR_TO_DATE(old_column, '%d %M %Y %H:%i:%s');

然后您可以删除当前列。

ALTER TABLE DROP COLUMN your_current_column;

或者选择其他方法,有几种可能性......