无法在MySQL查询中将字符串转换为日期时间

时间:2014-06-18 05:34:05

标签: mysql sql date-format group-concat str-to-date

我正在开展一个项目,我有两个表 - 一个是tbllessontopic,它保存了独特的课程计划和另一个表tbllessonperiodallocation,它保存了将要教授课程计划的日期。现在我已应用查询来获取所有日期通过使用group_concat()函数命名为日期的一列中的特定课程计划。现在我尝试按升序排列此列中的日期,我在tbllessonperiodallocation中的列日期是var char类型,因此在尝试将其转换为datetime格式我收到错误的日期时间值错误。请建议我如何实现这一点。

查询

select l.id,l.topic,l.dateallocated,l.noofperiods,s.subjectname,c.classname,
group_concat(p.date order by DATE_FORMAT(STR_TO_DATE(p.date, '%d %m %Y'), '%Y-%m-%d') asc)  as date from tbllessontopic l
join tbllessonperiodallocation p on p.lessontopicid=l.id
join tblclass c on c.classcode=l.classcode
join tblsubject s on s.sshortname=l.subject group by p.lessontopicid

输出

enter image description here

除了这个问题,如果可能的话,我想将日期栏中的第一个日期与今天的日期进行比较,并希望找出今天或今天之后的记录,例如我的第一行有2013年8月27日,2013年11月7日,2014年5月5日,现在我希望将2013年8月27日与今天的日期相匹配

1 个答案:

答案 0 :(得分:1)

Q1)尝试更改%m"月,数字(00-12)"到%M"月份名称"。 Q2)GROUP_CONCAT ORDER BY