Monday, October 10, 2011

Retrieving Only the Date from a Datetime Value in SQL Server

There are many times where you might need to only retrieve the date from a datetime value.

For example, you may have today's datetime (2011-10-10 20:30:28.230) and you want to only get the following value: 2011-10-10.

In SQL Server 2008 or later, you can easily do this by casting/converting the datetime value to the datatype DATE.

A typical example is the following:

--Datetime variable declaration
DECLARE @dateTimeValue as datetime
SET @dateTimeValue=GETDATE()

--Cast the datetime value to the DATE datatype
SELECT CAST(@dateTimeValue as DATE) as OnlyDate
GO

However, in earlier versions of SQL Server the DATE type is not available.
So, if you have a SQL Server 2005 instance or earlier and you want to get the date value from a datetime value you can just create and use a simple scalar-valued function like the following:



---------------------------------
-- Create scalar-valued function -
---------------------------------
CREATE FUNCTION dateOnly
(
@dateInput datetime
)
RETURNS varchar (10)
AS
BEGIN

declare @tempRes as varchar(10)
declare @tempYear as varchar(4)
declare @tempMonth as varchar(2)
declare @tempDay as varchar(2)

set @tempYear=(select cast ((datepart(yyyy,@dateInput)) as varchar(4)))
set @tempMonth=(select cast ((datepart(MM,@dateInput)) as varchar(4)))
set @tempDay=(select cast ((datepart(dd,@dateInput)) as varchar(4)))

set @tempRes=@tempYear+'-'+@tempMonth+'-'+@tempDay

RETURN @tempRes

END
GO
-----------------------------

Now that the function is created, the first example changes to:


--Datetime variable declaration
DECLARE @dateTimeValue as datetime
SET @dateTimeValue=GETDATE()

--Get only the date value by calling the scalar-valued function
SELECT dbo.dateOnly(@dateTimeValue) as OnlyDate
GO

.... and that's it! :)

I hope you found the article useful!

Until next time!



--
My Latest Projects:

[Ad]
Easily secure your SQL Server instances! Try out DBA Security Advisor!
DBA Security Advisor for SQL Server by SQLArtBits
DBA Security Advisor was developed by SQLArtBits. The tool was being carefully developed for an entire year and it contains comprehensive security checks and recommendations based on proven SQL Server security best practices. Feel free to download and use the Community Edition which is free and if you find it useful, you can consider upgrading to the Enterprise Edition!

Artemakis Artemiou [MVP]

Author & Editor

Artemakis Artemiou is a Senior SQL Server Architect, Software Developer and Microsoft Data Platform MVP. He is also an author, regular blogger, president of Cyprus.NET User Group and CY Country leader of INETA-EU. He is also the creator of DBA Security Advisor and In-Memory OLTP Simulator. Artemakis is a frequent guest author of worldwide well-respected online journals where he writes articles focusing on many SQL Server topics.

Reference: The SQL Server and .NET Hub (http://www.sqlnethub.com)

0 comments: