Jos*_*nte 135 mysql string date
我有一个string列作为一个date,我想选择它作为一个date.
可能吗?
我的样本数据格式是; month/day/year- >12/31/2011
blu*_*oot 237
正如在MySQL中所说的那样使用带有日期文本的字符串列作为日期字段,您可以这样做
SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM yourtable
Run Code Online (Sandbox Code Playgroud)
您还可以在WHERE子句中处理这些日期字符串.例如
SELECT whatever
FROM yourtable
WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAYS
Run Code Online (Sandbox Code Playgroud)
您可以通过这种方式处理各种日期/时间布局.请参阅函数的格式说明符,DATE_FORMAT()以查看可以放入第二个参数的内容STR_TO_DATE().
Bal*_*a R 44
STR_TO_DATE('12/31/2011', '%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
例如,使用以下查询来获取输出
SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table
Run Code Online (Sandbox Code Playgroud)
对于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');
Run Code Online (Sandbox Code Playgroud)
哪个产生:
2015年2月14日
要输出时间,您可以使用:
select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');
Run Code Online (Sandbox Code Playgroud)
哪个产生:
2017-02-14 23:38:12
下面说明了该STR_TO_DATE()函数的语法:
STR_TO_DATE(str,fmt);\nRun Code Online (Sandbox Code Playgroud)\nSTR_TO_DATE()根据 fmt 格式字符串将 str 字符串转换为日期值。该函数可能会根据输入和格式字符串STR_TO_DATE()返回DATE、TIME或DATETIME值。如果输入字符串非法,STR_TO_DATE()函数返回NULL。
以下语句将字符串转换为DATE值。
\nSELECT STR_TO_DATE(\'21,5,2013\',\'%d,%m,%Y\');\nRun Code Online (Sandbox Code Playgroud)\n\n基于格式字符串\xe2\x80\x98%d, %m, %Y\xe2\x80\x99,该STR_TO_DATE()函数扫描\xe2\x80\x9821,5,2013\xe2\x80\x99输入字符串。
STR_TO_DATE()\n函数不断查找第三个格式说明符 %Y 的匹配项,\n这是四位数的年份,例如 2012,2013 等,并且\n将数字 2013 作为年份值。该STR_TO_DATE()函数在根据格式字符串解析输入字符串时会忽略输入字符串末尾的额外字符。请参见以下示例:
SELECT STR_TO_DATE(\'21,5,2013 extra characters\',\'%d,%m,%Y\');\nRun Code Online (Sandbox Code Playgroud)\n\n更多详情:参考
\n