我有一个包含varchar字段的表格,其中包含日期,如2015年5月15日 - 上午03:10'
我必须将此表中的所有日期与最新行的日期进行比较,其中下一行是最近的日期和最近的日期
我在这里找到了这个解决方案:
select *
from reunion a
where STR_TO_DATE(a.dateDebut,'%d %b %Y - %I:%i %p')>
DATE_FORMAT(NOW(),'%d %b %Y - %I:%i %p');
但它会返回所有日期:' 2013年5月15日 - 03:10 AM' ,' 2015年5月15日 - 03:10 am',' 2016年5月15日 - 03:10 am'
当我改为"<"它返回0行;
是否有任何其他方法可以让varchar字段成为一个valide日期?
答案 0 :(得分:1)
您的查询过度。您只需将日期格式转换为date
即可。 now()
已经是约会了。所以试试:
select *
from reunion a
where STR_TO_DATE(a.dateDebut,'%d %b %Y - %I:%i %p') > NOW();