基本的に、ユーザーが生年月日をフォーマットで入力した表があります。
日-月-年(2012年12月1日)
表のデータには、そのフィールドが空の人、「DAY-MONTH-YEAR」という単語だけの人、「-」、「-」、「02-12-YEAR」の人など、さまざまなエラーがあります。その他には「--1985」があります。私は知っています...ひどい
私は今、正しい形式で完全な生年月日のみを入力したクエリの人々だけを取得するようにフィルタリングしようとしています。
私の正規表現は素晴らしいものではありません...そして、MySQLで日付を検証する方法について誰かが私を助けてくれるかどうか疑問に思っていました。これはPHPで簡単に実現できましたが、アプリケーションのモデルでこのプロセスを維持しようとしています。
SELECT m_dob FROM `mariners` WHERE m_dob IS NOT NULL AND m_dob != '' and m_dob != 'Day-Month-Year' AND m_dob != '--' AND m_dob REGEXP '^1[() -]*[[:digit:]]{3}[() -]*[[:digit:]]{3}[() -]*[[:digit:]]{4}$';