5
SELECT CONVERT(VARCHAR(10), GETDATE(), 105)  

This query return the date in the [DD-MM-YYYY] format as varchar. I need the same format in datetime datatype in sql server. Pls help me out

4
  • is this what you are looking for? SELECT CAST(CONVERT(VARCHAR(10), GETDATE(), 105) AS DATETIME) Commented Mar 3, 2011 at 8:56
  • @Verrigo; no he is not looking this. Commented Mar 3, 2011 at 8:58
  • i need to store the return value to the table column, which is datetime type Commented Mar 3, 2011 at 8:58
  • @Verrigo, it is returning in another format like this Commented Mar 3, 2011 at 9:02

3 Answers 3

3

In SQL Server, a DATETIME datatype is stored as 2 4-byte integers so as such doesn't have a particular formatting like this.

If you want to return the date in a specific format, you need to CONVERT it to VARCHAR with the appropriate format identifier specified.

If you have a datetime in a VARCHAR and want to store that in a DATETIME field in SQL Server, then you should make sure you pass that value to SQL in a format that will always be safely interpreted. e.g. dd/mm/YYYY format is not safe as depending on settings, it could be treated as mm/dd/yyyy when it goes in. Safe formats are:

yyyyMMdd
yyyy-MM-ddThh:mi:ss.mmm

e.g.

INSERT MyTable (DateField) VALUES ('01/10/2010') -- dd/MM/yyyy not safe
INSERT MyTable (DateField) VALUES ('20101001') -- yyyyMMdd safe

Update:
When you SELECT a DATETIME field (GETDATE(), field, variable....) what you see in SSMS is a formatted value as this is what is useful to you, instead of it showing it's actual internal 8byte representation.

Sign up to request clarification or add additional context in comments.

Comments

0

Here it is,

SELECT CONVERT(DATETIME, GETDATE(), 105)

Just Changed VARCHAR to DATETIME

2 Comments

that is not what he is looking for.
@Robinclave check this anubhavg.wordpress.com/2009/06/11/… . It might help, but i think to format date is possible but getting it in datetime datatype is only possible by changing the sql server settings (i.e might be system settings)
0

This will return a datetime

SELECT GETDATE()

3 Comments

here, the return type is varchar right? I need it in datetime datatype
@Robin Clave - no, GETDATE() returns DATETIME
Thats true. I said for SELECT CONVERT(VARCHAR(10), GETDATE(), 105)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.