title: Blocking '0000-00-00' from MySQL Date Fields
body: <p>I have a database where old code likes to insert '0000-00-00' in Date and DateTime columns instead of a real date. So I have the following two questions:</p>
  
  <ol>
  <li>Is there anything that I could do on the db level to block this? I know that I can set a column to be not-null, but that does not seem to be blocking these zero values. </li>
  <li>What is the best way to detect the existing zero values in date fields? I have about a hundred tables with 2-3 date columns each and I don't want to query them individually.</li>
  </ol>
  
  <p><strong>Followup:</strong></p>
  
  <p>The default is already set to null. A long time ago, the default was '0000-00-00'. Some code still explicitly places '0000-00-00'. I would prefer to force that code to throw an error so I could isolate and remove it.</p>