mysql - 与日期函数一样
问题描述
我有一个将日期存储为文本而不是 date_time 的表。我想选择今天发生的行。我可以硬编码日期,但很明显我想动态地做。
SELECT * FROM view WHERE anniversary LIKE '%09-07'
SELECT * FROM view WHERE anniversary LIKE '%' + DATE_FORMAT(now(), "%m-%d")
解决方案
首先,您应该将日期存储为date
s,而不是字符串。
但是,如果它们存储为字符串,则可以使用如下比较:
where right(anniversary_datestring, 5) = str_to_date(curdate(), '%m-%d')
但是,我建议修复您的数据。如果值的格式为 YYYY-MM-DD,只需执行以下操作:
alter table t modify column anniversary date;
推荐阅读
- c# - 如何在 wpf 中使用 FolderBrowserDialog?
- javascript - Firebase 在传递 FacebookAuthProvider.credential(access_token) 后抛出“无法解析 ID 令牌”
- regex - 可以包含句点但不能连续两个的字符串的正则表达式?
- flutter - 编写此代码但未获得输出时出现错误
- powerbi - 将使用 SSAS 多维数据集的报表发布到 app.powerbi.com?
- c++ - 为多线程重新组织嵌套循环
- ansible-tower - 如何在 Ansible Tower 中获取项目配置历史记录?
- amazon-web-services - 如何修复 template.yaml 中未包含的资源的“无法识别的资源类型”?
- python - 使用 zip 从两个列表创建 dict 的意外结果
- python - 导入 CSV 时奇怪的标题对齐