php - 如何检查存储在varchar字段中的日期是否是mysql查询的where子句中的有效日期?
问题描述
我想根据日期字段值更新 mysql 表中的数据。
表由四个字段(id、file_id、date_of_purchase、error)组成。date_of_purchase 和 error 是 varchar 字段。
现在,如果日期中的值不是有效日期,我想更新错误字段。我尝试了功能,STR_TO_DATE()
但它不起作用where clause
update query
这是我的查询
UPDATE `temp_bulk_upload_data` SET `error`= 'Date of purchase: Date of purchase should be a valid date' WHERE `file_id`='190' AND STR_TO_DATE(`date_of_purchase`, '%m/%d/%Y') IS NULL AND (`date_of_purchase` != '' OR `date_of_purchase` IS NOT NULL)
在此查询中,我收到此错误:
Error in query (1411): Incorrect datetime value: '27/8/2018' for function str_to_date
解决方案
在这种情况下使用正则表达式。 询问
WHERE `date_of_purchase` NOT REGEXP '^(0[1-9]|1[0-2])\\/(0[1-9]|[1-2][0-9]|3[0-1 ])\\/[0-9]{4}$'
推荐阅读
- swift - 如何在单个 Vapor 路线中分支出“未来”序列?
- python - 通过原生 pip 在 macOS 上安装 Tensorflow
- symfony - Symfony DOM Crawler:查询匹配当前项目的标签
- amazon-web-services - 将 Namecheap 区域文件导入 AWS Route53
- python - 如何修复 cm.spectral(模块 'matplotlib.cm' 没有属性 'spectral')?
- jquery - 如何在 TypeScript 中为“window”和“document”创建 jQuery 对象?
- wordpress - woocommerce - 在查看订单页面中显示产品
- javascript - 如果传递不同的参数,为什么 console.log 会得到不同的结果?
- android - 可绘制合身
视图的宽度,同时保持纵横比 - java - libgdx FrameBuffer 是如何工作的