【发布时间】:2015-09-12 00:01:33
【问题描述】:
MySQL 数据库有Blogs 表,其中列PostDate 和ErrorMessage。两者都是字符串数据类型。
现在我需要应用验证,如果 PostDate 是 null、空白、0000-00-00 或“无法解析”,则应更新错误消息。
我的查询如下:-
UPDATE Blogs
SET ErrorMessage= 'Post date is Invalid.'
WHERE PostDate IS NULL OR PostDate = ''
OR PostDate= '0000-00-00' OR STR_TO_DATE(PostDate, '%Y-%m-%d') IS NULL;
现在,如果 postdate 包含任何字符串,如 '16mar' 或 'Abc' 等,此查询将失败。但我听说 STR_TO_DATE 函数如果无法解析日期,将返回 null。
我也使用Select 语句对此进行了测试。哪个工作正常。
SELECT *,STR_TO_DATE(PostDate, '%Y-%m-%d') FROM Blogs
WHERE PostDate IS NULL OR PostDate = ''
OR PostDate= '0000-00-00' OR STR_TO_DATE(PostDate, '%Y-%m-%d') IS NULL;
我无法理解更新语句中的问题
更新:--我在更新时遇到的错误是:- 错误代码:1411。日期时间值不正确:函数 str_to_date 的“16mar”
【问题讨论】:
-
将 PostDate 的数据类型更改为 'date' 或 'timestamp'
-
分享你得到的错误。
-
错误代码:1411。日期时间值不正确:函数 str_to_date 的“IN VALID POST DATE”
-
@SantoshJagtap PostDate 将作为字符串提供,因为它来自受第 3 方监控的 URL。我们将其转储到我们的数据库中,并在验证后将其放入邮件表中
-
@iGod 将一条记录的日期设置为 0000-01-00 并对其应用选择查询。并请分享结果。
标签: php mysql sql asp.net database