sqldatet-sqldatetimesql-server-2008

How to return only the Date from a SQL Server DateTime datatype


SELECT GETDATE()

Returns: 2008-09-22 15:24:13.790

I want that date part without the time part: 2008-09-22 00:00:00.000

How can I get that?


Solution

  • NOTE: This answer returns the original DATETIME or DATETIME2 type. For an expression that returns a true DATE type (SQL Server 2008 and later), see BenR's answer below.

    SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
    

    for example

    SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
    

    gives me

    2008-09-22 00:00:00.000
    

    Pros: