MYSQL数据库的日期格式

时间:2012-03-07 11:50:20

标签: mysql date-format

我的日期格式如下:

2月27日星期六21:39:24 +0000 2010

我已将其作为TEXT插入我的数据库中。有没有办法将数据库内容用作日期?因为我必须运行查询才能找到最新日期或旧日期。但我无法做到这一点,因为它的类型是TEXT。

如果上面的查询不可能那么告诉我如何将给定的格式转换成mysql数据库作为日期和时间?

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以使用CONVERT函数,例如:

INSERT INTO table(dateField) VALUES ( CONVERT("Sat Feb 27 21:39:24 +0000 2010",DATETIME) )

答案 1 :(得分:0)

您可以使用STR_TO_DATE()功能。

我无法确切地告诉您使用哪种格式,因为您的示例有2位数日,所以我不知道它是否代表单位数日值,例如它是否使用01或1。

但这里有两个选择:

-- two digit day
select STR_TO_DATE(your_column,'%a %b %d %k:%i:%s +0000 %Y') from your_table;

-- one to two digit day
select STR_TO_DATE(your_column,'%a %b %e %k:%i:%s +0000 %Y') from your_table;

示例:

mysql> -- two digit day
mysql> select STR_TO_DATE('Wed Mar 07 12:07:03 +0000 2012','%a %b %d %k:%i:%s +0000 %Y');
+----------------------------------------------------------------------------+
| STR_TO_DATE('Wed Mar 07 12:07:03 +0000 2012','%a %b %d %k:%i:%s +0000 %Y') |
+----------------------------------------------------------------------------+
| 2012-03-07 12:07:03                                                        |
+----------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> -- one to two digit day
mysql> select STR_TO_DATE('Wed Mar 7 12:07:03 +0000 2012','%a %b %e %k:%i:%s +0000 %Y');
+---------------------------------------------------------------------------+
| STR_TO_DATE('Wed Mar 7 12:07:03 +0000 2012','%a %b %e %k:%i:%s +0000 %Y') |
+---------------------------------------------------------------------------+
| 2012-03-07 12:07:03                                                       |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec)