我有一个字符串列,它的作用是表示日期,我想将其选择为一个DATE
。
这是可能的吗?
我的样本数据格式如下:
月/日/年
->12/31/2011
正如在MySQL使用字符串列作为日期字段中所述,您可以这样做
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 DAY
您可以通过这种方式处理各种日期/时间格式。请参考DATE_FORMAT()
函数的格式说明符,以查看您可以在STR_TO_DATE()
函数的第二个参数中使用什么。
STR_TO_DATE('12/31/2011', '%m/%d/%Y')
%d/%m/%Y
,如此编写代码 STR_TO_DATE('31/11/1015', '%d/%m/%Y')
。请记住输出将以YYYY-MM-DD
格式作为DATE
数据类型。 - Will B.以下有两个例子。
要输出日期、月份和年份,可以使用:
select STR_TO_DATE('14/02/2015', '%d/%m/%Y');
这将产生:
2015年02月14日
如果要同时输出时间,您可以使用:
select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');
这会产生:
2017年02月14日23时38分12秒
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
STR_TO_DATE()
函数的语法示例:STR_TO_DATE(str,fmt);
STR_TO_DATE()
函数将字符串str根据格式字符串fmt转换为日期值。基于输入和格式字符串,STR_TO_DATE()
函数可能返回DATE、TIME或DATETIME值。如果输入字符串不合法,则STR_TO_DATE()
函数返回NULL。SELECT STR_TO_DATE('21,5,2013','%d,%m,%Y');
基于格式字符串“%d,%m,%Y”,STR_TO_DATE()
函数扫描输入字符串“21,5,2013”。
STR_TO_DATE()
函数继续查找第三个格式说明符%Y,它是四位数的年份,例如2012年,2013年等,并将数字2013作为年份值。STR_TO_DATE()
函数在解析输入字符串时,会根据格式字符串忽略输入字符串末尾的额外字符。以下是一个示例:SELECT STR_TO_DATE('21,5,2013 extra characters','%d,%m,%Y');
更多细节:参考