我的日期格式如下:
2月27日星期六21:39:24 +0000 2010
我已将其作为TEXT插入我的数据库中。有没有办法将数据库内容用作日期?因为我必须运行查询才能找到最新日期或旧日期。但我无法做到这一点,因为它的类型是TEXT。
如果上面的查询不可能那么告诉我如何将给定的格式转换成mysql数据库作为日期和时间?
提前致谢
答案 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)