如何在MySQL中将string转换为date?

我有一个string列作为一个date ,我想select它作为一个date

可能吗?

我的样本数据格式是; month/day/year – > 12/31/2011

正如这里所说的, MySQL使用带date文本的string列作为date字段 ,你可以这样做

 SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y') FROM yourtable 

你也可以在WHERE子句中处理这些datestring。 例如

 SELECT whatever FROM yourtable WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAYS 

您可以通过这种方式处理各种date/时间布局。 请参阅DATE_FORMAT()函数的格式说明符,查看可以将第二个参数STR_TO_DATE()

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

 STR_TO_DATE('12/31/2011', '%m/%d/%Y') 

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
使用上面的页面来引用更多的MySQL函数

 SELECT STR_TO_DATE(StringColumn, '%d-%b-%y') FROM table 

比如说使用下面的查询来获得输出

 SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table 

对于string格式使用下面的链接

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

这里还有两个例子。

要输出日,月和年,您可以使用:

 select STR_TO_DATE('14/02/2015', '%d/%m/%Y'); 

其中产生:

2015年2月14日

要输出时间,您可以使用:

 select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T'); 

其中产生:

2017-02-14 23:38:12