Tuesday, August 20, 2013

How to add ‘st’,’nd’,’rd’,’th’ to dates in SQL Server 2008 using CASE statement

Hi, Friends! Welcome to all of you in my Blog.
Today is a special day in my life… My Birthday. Yeah! This is 20th August.
So, today I write in a topic of How we can add ‘st’,’nd’,’rd’,’th’ to dates in SQL Server 2008.

USE [tempdb]
GO
--Create a sample table
CREATE TABLE [dbo].[tbl_sample](
[ID] [int] NULL,
[Date] [date] NULL
)
GO
--Insert records in the table
INSERT INTO dbo.[tbl_sample]
SELECT 1 AS [ID] ,N'2013-08-01' AS [Date] UNION ALL
SELECT 2 AS [ID] ,N'2013-08-02' AS [Date] UNION ALL
SELECT 3 AS [ID] ,N'2013-08-03' AS [Date] UNION ALL
SELECT 4 AS [ID] ,N'2013-08-04' AS [Date] UNION ALL
SELECT 5 AS [ID] ,N'2013-08-05' AS [Date] UNION ALL
SELECT 6 AS [ID] ,N'2013-08-06' AS [Date] UNION ALL
SELECT 7 AS [ID] ,N'2013-08-07' AS [Date] UNION ALL
SELECT 8 AS [ID] ,N'2013-08-08' AS [Date] UNION ALL
SELECT 9 AS [ID] ,N'2013-08-09' AS [Date] UNION ALL
SELECT 10 AS [ID] ,N'2013-08-10' AS [Date] UNION ALL
SELECT 11 AS [ID] ,N'2013-08-11' AS [Date] UNION ALL
SELECT 12 AS [ID] ,N'2013-08-12' AS [Date] UNION ALL
SELECT 13 AS [ID] ,N'2013-08-13' AS [Date] UNION ALL
SELECT 14 AS [ID] ,N'2013-08-14' AS [Date] UNION ALL
SELECT 15 AS [ID] ,N'2013-08-15' AS [Date] UNION ALL
SELECT 16 AS [ID] ,N'2013-08-16' AS [Date] UNION ALL
SELECT 17 AS [ID] ,N'2013-08-17' AS [Date] UNION ALL
SELECT 18 AS [ID] ,N'2013-08-18' AS [Date] UNION ALL
SELECT 19 AS [ID] ,N'2013-08-19' AS [Date] UNION ALL
SELECT 20 AS [ID] ,N'2013-08-20' AS [Date] UNION ALL
SELECT 21 AS [ID] ,N'2013-08-21' AS [Date] UNION ALL
SELECT 22 AS [ID] ,N'2013-08-22' AS [Date] UNION ALL
SELECT 23 AS [ID] ,N'2013-08-23' AS [Date] UNION ALL
SELECT 24 AS [ID] ,N'2013-08-24' AS [Date] UNION ALL
SELECT 25 AS [ID] ,N'2013-08-25' AS [Date] UNION ALL
SELECT 26 AS [ID] ,N'2013-08-26' AS [Date] UNION ALL
SELECT 27 AS [ID] ,N'2013-08-27' AS [Date] UNION ALL
SELECT 28 AS [ID] ,N'2013-08-28' AS [Date] UNION ALL
SELECT 29 AS [ID] ,N'2013-08-29' AS [Date] UNION ALL
SELECT 30 AS [ID] ,N'2013-08-30' AS [Date] UNION ALL
SELECT 31 AS [ID] ,N'2013-08-31' AS [Date]

--DROP TABLE [dbo].[tbl_sample]

SELECT ID, [DATE], FORMATDATE = CASE                           
WHEN DAY([DATE]) IN (1,21,31) THEN DATENAME(D,[DATE])+'st ' + DATENAME(MONTH, [DATE]) + ' ' + DATENAME(YEAR, [DATE]) 
WHEN DAY([DATE]) IN (2,22) THEN  DATENAME(D,[DATE])+'nd ' + DATENAME(MONTH, [DATE]) + ' ' + DATENAME(YEAR, [DATE])                       
WHEN DAY([DATE]) IN (3,23) THEN  DATENAME(D,[DATE])+'rd ' + DATENAME(MONTH, [DATE]) + ' ' + DATENAME(YEAR, [DATE])                       
ELSE DATENAME(D,[DATE])+'th ' + DATENAME(MONTH, [DATE])+ ' ' + DATENAME(YEAR, [DATE])
END            

FROM TBL_SAMPLE

1 comment:

  1. Happy Birth Day..
    Many Many Happy Returns of The Day..
    Wish You Best of Luck..

    Thanks for The Discussion on This Topic.

    ReplyDelete