如何在MariaDB中检查无效日期



我想检查表中datetime列中数据的有效性。我尝试过使用ISDATE((函数,但Maria DB不支持它,还有什么其他选项可以检查Maria DB中日期时间列的有效性?

除非sql模式"ALLOW_INVALID_DATES";如果已启用,MariaDB将默认检查日期时间值是否有效。(参见MariaDB文档中的DATETIME

由于MariaDB不提供验证函数(如SQL Server(,因此您需要使用一个转换函数,如果日期时间值不正确,该函数将返回NULL:

MariaDB [test]> select id, dt from mytable;
+------+---------------------+
| id   | dt                  |
+------+---------------------+
|    2 | 2001-02-31 00:00:00 |
|    3 | 2002-01-01 13:27:00 |
|    4 | 2020-12-01 00:00:00 |
|    5 | 2022-01-11 16:59:04 |
+------+---------------------+
4 rows in set (0.001 sec)
MariaDB [test]> select id,dt from mytable where dayname(cast(dt as char)) is NULL;
+------+---------------------+
| id   | dt                  |
+------+---------------------+
|    2 | 2001-02-31 00:00:00 |
+------+---------------------+
1 row in set, 1 warning (0.001 sec)

相关内容

  • 没有找到相关文章