0

我在 MySQL 中有一个表,其中有一个日期和时间列。此列的格式为01 February 2013 12:49:40. 我还想提取日期部分和时间部分以及月份部分。我正在使用month(01 February 2013 12:49:40)此功能,但它会引发错误。我不能使用Substring, 因为行的宽度不相等。我该怎么办。

4

1 回答 1

3

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

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

然后你可以使用年(),月(),时间()等函数来获得你想要的东西......

 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;

或者选择另一种方法,几种可能...

于 2013-08-26T14:21:19.890 回答