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