Using this code might work in one culture and might not work in another culture,
as I explained above in short (and the article that I linked explained in details).
I highly recommend not to use the code as it is, even if it work for you today (the fix is very small and there is no reason that you limit yourself to specific culture).
please try to execute the code using "SET LANGUAGE German;" for example and you will get error if the date is '3/19/2014
12:00AM' (this is the second example in the OP sample)
SET LANGUAGE German;
select Cast(Dateadd(day,1,'3/19/2014 12:00AM') as date)
GO
-- ERROR: Bei der Konvertierung eines varchar-Datentyps in einen datetime-Datentyp liegt der Wert auerhalb des gltigen Bereichs.
I Do not understand German but I can guess that the error is "out of range", since this query use explicit convert the string to datetime (using the Dateadd with a string create implicit convert!) and in German it try to use the number 19 as