mysql 查询日期范围,日期为varchar类型,带中文 如:2019年07月30日,应该怎么写sql?

发布于 2022-09-11 21:36:57 字数 380 浏览 31 评论 0

表数据如下:

clipboard.png

使用如下sql查询日期范围无效:

select * from sys_record where str_to_date(record_date,'%Y年%m月%d日') between '2019年7月29日' and '2019年08月04日';

clipboard.png

如果,要查询日期范围sql应该怎么修改?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凉栀 2022-09-18 21:36:57

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日'

另外,这种每次都要转换再查询的效率很低,如表操作频繁建议增加扩展字段或将转换好的数据插入到新表,再做查询

仙女 2022-09-18 21:36:57

做视图表。 转成int

娜些时光,永不杰束 2022-09-18 21:36:57

你要把类型转换成相同的再比较。你这样类型不一样,查询时候又会自动转换成你比较的varchar 类型。所以查询不到

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文