mysql校验日期正确性_MySQL日期有效性

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:58   1063   0

MySQL是否提供验证日期有效性的任何功能?例如,在提供无效日期2013-02-30时,DATE函数返回NULL.但是,我也同时使用STR_TO_DATE,这会神秘地阻止DATE正常工作.

SELECT DATE('2013-02-30'); NULL

SELECT STR_TO_DATE('2013-02-30', '%Y-%m-%d'); NOT NULL

SELECT DATE('2013-02-40'); NULL

SELECT STR_TO_DATE('2013-02-40', '%Y-%m-%d'); NULL

SELECT DATE(STR_TO_DATE('2013-02-30', '%Y-%m-%d')); NOT NULL

为什么STR_TO_DATE会暂停DATE的功能,是否有一些解决方法可以在使用STR_TO_DATE(我有义务使用)时验证日期是否有效?

我在此期间偶然发现了答案:当数据类型已经是’date'(STR_TO_DATE将字符串转换为日期数据类型)时,显然DATE函数会跳过一些验证检查.因此,在使用STR_TO_DATE将日期解析为正确的格式后,将日期转换为字符串,可以解决问题:

@valid_date = NOT ISNULL(DATE(CONVERT(STR_TO_DATE(‘2013-02-29′,’%Y-%m-%d’),CHAR))).

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP