Is there any way to validate datetime field before inserting it into appropriate table?
Trying to insert with try/catch block is not a way.
Thanks,
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Not sure if I’m being overly pedantic there, but DateTime.TryParse will validate whether a value is a valid DateTime object. OP asked about verifying a value before inserting into SQL Server datetime. The range of acceptable values for a SQL Server datetime is “January 1, 1753, through December 31, 9999” That does not hold true for DateTime .NET objects. This script assigns a value of “1/1/0001 12:00:00 AM” to badDateTime and it successfully parses.
However, if you attempted to store that into a datetime field, it would fail with “The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.”
A commenter asked why I used 997 for milliseconds, this is covered under SQL Server 2008 and milliseconds but saving you a click, 997 is the largest value you can store in a datetime datatype. 998 will be rounded up to 1 second with 000 milliseconds
This is probably a better approach as this will attempt to cast the DateTime object into an actual sql datetime data type