如何在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