在mysql中将任何有效的日期格式转换为日期

时间:2018-01-25 10:33:52

标签: mysql date datetime

如何在不指定MySQL格式的情况下检查字符串是否为有效日期。用户可以输入以下格式;

21-08-2013
21/08/2013
2013/08/21
21jan2018

我事先并不知道用户可以输入的格式。 我试过了:

选择str_to_date()但在这里我需要指定我不想要的格式。 我只是想检查一个字符串是否是有效日期而没有指定格式。

请建议。 感谢

1 个答案:

答案 0 :(得分:1)

您在问题中向我们展示的所有四个日期字符串都可以使用STR_TO_DATE和适当的格式掩码转换为MySQL日期。因此,您应该能够简单地检查这些日期模式,如果您想知道是否可以将它们转换为日期:

SELECT *
FROM yourTable
WHERE
    col REGEXP '[0-9]{2}-[0-9]{2}-[0-9]{4}' OR
    col REGEXP '[0-9]{2}/[0-9]{2}/[0-9]{4}' OR
    col REGEXP '[0-9]{4}/[0-9]{2}/[0-9]{2}' OR
    col REGEXP '[0-9]{2}[A-Z]{3}[0-9]{4}';
相关问题