mysql 查询日期范围,日期为varchar类型,带中文 如:2019年07月30日,应该怎么写sql?
表数据如下:
使用如下sql查询日期范围无效:
select * from sys_record where str_to_date(record_date,'%Y年%m月%d日') between '2019年7月29日' and '2019年08月04日';
如果,要查询日期范围sql应该怎么修改?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
1、先将字符转换成date类型,示例:ifnull(str_to_date(record_date,'%Y-%m-%d'),str_to_date(record_date,'%Y年%m月%d日'))
2、查询条件,尽量用date格式可以识别的格式 如'2019-07-29' 而非 '2019年7月29日'
另外,这种每次都要转换再查询的效率很低,如表操作频繁建议增加扩展字段或将转换好的数据插入到新表,再做查询
做视图表。 转成int
你要把类型转换成相同的再比较。你这样类型不一样,查询时候又会自动转换成你比较的varchar 类型。所以查询不到