如何在mysql中将字符串转换为日期?

问题描述:

我有一个string列,它充当date,我想选择它作为date如何在mysql中将字符串转换为日期?

可能吗?

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

正如这里MySQL Using a string column with date text as a date field说,你可以做

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

您也可以处理WHERE子句这些日期字符串。例如

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

您可以通过这种方式处理各种日期/时间布局。请参阅格式说明为DATE_FORMAT()功能,看看有什么可以投入的第二个参数STR_TO_DATE()

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

+3

我认为它应该是INTERVAL 7天而不是DAYS – 2016-02-08 18:14:04

+0

我有一个像“dd-mmm-yyyy”格式的字符列。我如何查询“dd-mm-yyyy”格式? – MAX 2017-05-02 14:38:02

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

什么是日期存储为喜欢31/11/1015 DD/MM/YYYY格式? – 2016-05-26 11:50:26

+1

@VipulHadiya将日期格式字符串更改为'%d /%m /%Y''STR_TO_DATE('31/11/1015','%d /%m /%Y')请记住输出将会YYYY-MM-DD“格式为'DATE'数据类型。 – fyrye 2016-08-04 05:58:14

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 

字符串格式使用下面的链接

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年2月14日23点38分十二秒