How to detect date format

I have an application that can accept both US and Europe date format but my MS SQL 2008 can only accept 1 format and we prefer US.  My plan is to check first if the date is in Europe format then convert it before saving.

Would it be proper to do the checking and conversion using SP or just to in code before saving?
It would be best if the recommendation comes with the sample code.

Who is Participating?
Carl TawnConnect With a Mentor Systems and Integration DeveloperCommented:
You will make things a lot easier for yourself if you send the dates to your SQL server in UTC format. Just because you send dates to the QSL Server in US format that doesn't mean that the SQL Server will necessarily interpret it as US format as it will depend on the  SQL Servers collation settings.

UTC is a standard format which will remove the ambiguity:
string utcDate = yourDate.ToString("yyyy-MM-dd HH:mm:ss");

Open in new window

SharathData EngineerCommented:
What is the data type of your column? If it is datetime, you need not to worry about the format as long as it is valid date. You need to format the date into your required format when you display it.
Let me know if your column datatype is not datetime but varchar/nvarchar.
tigin44Connect With a Mentor Commented:
you can convert it to the format as you wanted while storing that data i.e.  
I assume that your data type is datetime...

INSERT INTO table....
VALUES(...., CONVERT(datetime, someDateTimeValue, 102), ,,,,)

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

JaimeJegoniaAuthor Commented:
My Data type is DateTime but it does not accept: 22/02/2011

The format we prefer is this:
05/15/2010 20:15:00

Thanks for the prompt replies.
JaimeJegoniaAuthor Commented:

Is that possible with SP?

Carl TawnSystems and Integration DeveloperCommented:
It's easier if you can pass it to the SP in that format already. You can do date conversion in T-SQL, but you would need to know the input format in order to know how the date will be interpreted.

For example, if you passed "01/04/2010" to an SP, the SQL Server has no idea if you intended that to be "1st April 2010" or "4th January 2010", and it will interpret it based on its collation settings, which may or may not give the result you want.

If your app allows multiple date cultures then it is always easiest to handle the conversion in your application and send them to SQL Server in one standard format.
omegaomegaConnect With a Mentor DeveloperCommented:
Hellol, JaimeJegonia,

I'm in agreement with carl_tawn's suggestion.  And if it's of any value in making the conversion, you can get the current user's date format from:


SharathConnect With a Mentor Data EngineerCommented:
Do you have time part associated with your date column? If not, can you try like this.
INSERT INTO table....
VALUES(...., CONVERT(datetime, someDateTimeValue, 103), ,,,,)
JaimeJegoniaAuthor Commented:


If my Date I am receiving is 22/02/2011 00:20 which is already a string,  how can I use your recommended formatting?

string utcDate = yourDate.ToString("yyyy-MM-dd HH:mm:ss");

I can neither convert 22/02/2011 00:20 to the current Date Culture.

Any Idea?


JaimeJegoniaAuthor Commented:
No comments
All Courses

From novice to tech pro — start learning today.