I have an older table where a datetime column was built as a varchar and the form inserting data into this table was freeform with no validation/restrictions. I have corrected the form and now am set upon the task of normalizing the data. I need to query this column for all records that cannot be CAST as a datetime
Examples:
9/30/2008
9/30/13
august 2010
5/11
30SEP12
31-Mar-2011
2005
I have already cleaned up the N/A data to be NULL but am unsure of an efficient way of getting everything that would not be considered a valid date. Any hints or tricks or am I going to have to go through record by record to convert this column to a datetime data type?
You can use ISDATE to determine records that aren't dates:
SELECT *
FROM YourTable
WHERE isdate(OldDateField) = 0
You can use the query below to see which ones won't be dates:
SELECT isdate('9/30/2008')
SELECT isdate('9/30/13')
SELECT isdate('august 2010')
SELECT isdate('5/11')
SELECT isdate('30SEP12')
SELECT isdate('31-Mar-2011 2005')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With