2016-03-01 79 views
1

我有一个像这样的格式,在我DATEBASE“DDMMYYYY”数据,它的数据类型也为varchar(8)现在我需要查询之间使用VARCHAR到mysql中的日期时间比较

我的表中的数据是比较日期

| id | enquiry_date | dept_name | 
|----------------------------------------| 
| 1 | 02112004  |  LAB  | 
| 2 | 31122005  | RESEARCH | 
| 3 | 26052005  |  LAB  | 
| 4 | 16042006  | RESEARCH | 

现在我需要记录从05-02-2005到12-11-2006那样。这里它的varchar如何比较,请提前帮助我。

+3

修复你的表,使用日期型数据,而不是! – jarlh

+0

如果你真的想留在varchar类型看看这里:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date –

+0

其实我从Web服务收到的数据在那里,他们将以这种格式插入,我需要在这里获取记录 –

回答

3

您可以尝试使用STR_TO_DATE

STR_TO_DATE(enquiry_date,'%d%m%Y') 

所以,你可以比较喜欢

where date_format(STR_TO_DATE(enquiry_date,'%d%m%Y'), '%d-%m-%Y') > '05-02-2005' 
and date_format(STR_TO_DATE(enquiry_date,'%d%m%Y'), '%d-%m-%Y') < '12-11-2006' 
+0

没有老板这里我只有空值只有它没有工作 –

+0

@NandhiniKarnan: - 更新了我的答案。请检查 –