title: Setting a culture neutral date in a sql statement released with database update script
body: <p>I am currently creating and testing update scripts for a database that will be included in the installation routine for a program that I have created.  Within the database I create a simple stand alone table called DatabaseVersionHistory and my plan has been to include something along these lines with each update that I make (I not planning on making numerous updates but realise that the odd one is inevitable, and given that they will be cumulative it's vital that they are installed in the correct order.</p>
  
  <p>So To my question(s);</p>
  
  <p>Take this script</p>
  
  <pre><code> UPDATE DatabaseVersionHistory
    SET VersionNumber =1.1,
    ReleaseDate = '20/01/2016',
    ReleasedWithFTVersion = 1.01
  </code></pre>
  
  <p>What is the correct way to write the ReleaseDate = so that it will work in a culture neutral fashion?</p>
  
  <p>I accept that arguably, given that I am setting a specific version number that the date is academic, but I'd like it there if easy to set in a culturally neutral fashion.</p>
  
  <p>The next part of the question involves future updates and a question of the best approach.  Should one simply have one update script, doing a test on the version number and then having a case statement that runs whichever is appropriate to bring the end users' database up to the correct version  or have the end user run a series of scripts to bring the database up to the correct version.  My plan is to have this all automated in the installer, so nothing is fixed in stone and I'd like to try and employ best practice from the outset.</p>
  
  <p>I have tagged this as just SqlServer deliberately as there is a general aspect to the second part.  Realistically it is likely to target SqlServer 2012 or above in either standard or express variants.</p>