MySQL中用正则表达式判断日期格式(mysql判断日期格式)

MySQL中有一类函数叫做正则函数,正则函数可以用于检查字符串中的模式,可以用来判断该字符串是否在某个规则之内,从而判断出字符串中的内容,这里博主会讲解如何用MySQL中的正则函数判断日期格式。

**用来判断日期格式的正则表达式如下:**

 ^(((1 | 0)[1-9])|(31 ))/(((1 | 0)[1-9])|(1[012]))/(19 | 20)\d\d$

其中,^指开始;$指结束。

(1 | 0)[1-9]表示1-09这样的月份,或者10-12月份,同理,(31 )表示31号,也就是说只能判断1-31号,最后就是年,(19 | 20)\d\d表示19XX或者20XX,如果想要只要求年份在2000-2099这样的范围,可以将其调整为:

20(([0][1-9]) | ([1][0-9]))

**可以把上面的正则表达式改成MySQL函数如下:**

select * from 表名 where 
date_format(日期字段, '%d/%m/%Y') rlike '^(((1|0)[1-9])|(31))/(((1|0)[1-9])|(1[012]))/(19|20)\d\d$';

如果想要使用刚才的年份表达式,则可以将其改写成:

select * from 表名 where 
date_format(日期字段, '%d/%m/%Y') rlike '^(((1|0)[1-9])|(31))/(((1|0)[1-9])|(1[012]))/20(([0][1-9])|([1][0-9]))$';

上述代码的意思就是,从表的日期字段中,用正则表达式来判断该字段的内容是否满足日期的要求,如果满足,就会返回结果。

总之,用正则表达式判断日期格式在MySQL中是可行的,能够满足一定的要求,对日期的判断有很大的帮助。


数据运维技术 » MySQL中用正则表达式判断日期格式(mysql判断日期格式)