无法在 MySQL 查询中将字符串转换为日期时间
Posted
技术标签:
【中文标题】无法在 MySQL 查询中将字符串转换为日期时间【英文标题】:Unable to convert string to date time in MySQL query 【发布时间】:2014-08-08 06:52:34 【问题描述】:我正在处理一个项目,其中有两个表 - 一个是 tbllessontopic,它保存独特的课程计划,另一个表 tbllessonperiodallocation,它保存将教授课程计划的日期。现在我已经应用查询来获取所有日期使用 group_concat() 函数在一个名为日期的列中的特定课程计划。现在我正在尝试按升序排列此列中的日期,我在 tbllessonperiodallocation 中的列日期是 var char 类型,因此在尝试将其转换为日期时间格式我收到错误的日期时间值错误。请建议我如何实现这一点。
查询
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
输出
如果可能的话,除了这个问题之外,我想将日期列中的第一个日期与今天的日期进行比较,并想找出今天或今天之后的记录,例如我的第一行是 2013 年 8 月 27 日,2013 年 11 月 7 日, 2014 年 5 月 5 日现在我想将 2013 年 8 月 27 日与今天的日期匹配
【问题讨论】:
为什么要同时使用 Date_format 和 str_to_date 函数 因为我在某处看到将字符串转换为日期时间,所以我们必须像在上面的查询中那样做 【参考方案1】:Q1) 尝试将 %m "月份,数字 (00-12)" 更改为 %M "月份名称"。 Q2)GROUP_CONCAT ORDER BY
【讨论】:
thanx 它解决了我不正确的日期时间问题,我已经使用了 order by。请帮我解决第二部分,我可以将第一个日期与今天的日期匹配以上是关于无法在 MySQL 查询中将字符串转换为日期时间的主要内容,如果未能解决你的问题,请参考以下文章