string
列,它充当date
,我想选择它作为date
。 可以吗?
我的示例数据格式为;
month/day/year
-> 12/31/2011
#1 楼
如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()
的第二个参数中添加什么内容。#2 楼
STR_TO_DATE('12/31/2011', '%m/%d/%Y')
评论
什么是日期以DD / MM / YYYY格式存储(例如31/11/1015)?
– Vipul Hadiya
16年5月26日在11:50
@VipulHadiya将日期格式字符串更改为%d /%m /%Y,就像STR_TO_DATE('31 / 11/1015','%d /%m /%Y')一样,请记住输出将为YYYY-MM -DD格式作为DATE数据类型。
– B
16年8月4日在5:58
仅代码的答案在StackOverflow上是低价值的。请改善此正确答案。
– mickmackusa
18年6月29日在3:53
#3 楼
http://dev.mysql.com/doc/refman/5.5/zh-CN/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/zh-CN/date-and-time-functions.html#function_date-format
#4 楼
这是另外两个示例。要输出日,月和年,可以使用:
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
#5 楼
下面说明了STR_TO_DATE()
函数的语法:STR_TO_DATE(str,fmt);
STR_TO_DATE()
根据fmt格式字符串将str字符串转换为日期值。 STR_TO_DATE()
函数可以根据输入和格式字符串返回DATE,TIME或DATETIME值。如果输入字符串不合法,则STR_TO_DATE()
函数将返回NULL。以下语句将字符串转换为DATE值。
SELECT STR_TO_DATE('21,5,2013','%d,%m,%Y');
基于格式字符串'%d ,%m,%Y',则
STR_TO_DATE()
函数将扫描'21,5,2013'输入字符串。首先,它尝试找到%d格式说明符的匹配项,
是输入字符串中的月份中的一天(01…31)。因为
数字21与%d指定符匹配,所以该函数将21作为
day值。与输入字符串中的逗号匹配,函数继续
检查第二个格式说明符%m,这是一个月(01…12),并且
发现数字5与%m匹配格式说明符。它
将数字5用作月份值。
第三,在匹配第二个逗号(,)之后,
STR_TO_DATE()
函数会继续查找第三种格式说明符%Y的匹配项,
/>,它是四位数的年份,例如2012、2013等,它以
2013作为年份值。基于格式字符串解析输入字符串时的输入字符串。请参见以下示例:
SELECT STR_TO_DATE('21,5,2013 extra characters','%d,%m,%Y');
更多详细信息:参考
评论
我认为应该是INTERVAL 7 DAY,而不是DAYS
– Feras Odeh
16年2月8日在18:14
我有一个类似“ dd-mmm-yyyy”格式的字符列。如何查询“ dd-mm-yyyy”格式?
– MAX
17年5月2日在14:38