Login or Sign Up to become a member!

EXPERTS, INFORMATION, IDEAS & KNOWLEDGE

Social bookmarker Add this

Formatting Dates

From Wiki

Jump to: navigation, search

According to Joe Celko this should always happen on the client side, but in case you ever need it (for example in DTS when you have to output to a file) here is the SQL code.


This part will return a 4 digit year. We are using format values greater than 100

  1. DECLARE @d DATETIME
  2.     SELECT @d = GETDATE()
  3.  
  4.     SELECT @d AS OriginalDate,
  5.     CONVERT(VARCHAR,@d,100) AS ConvertedDate,
  6.     100 AS FormatValue,
  7.     'mon dd yyyy hh:miAM (or PM)' AS OutputFormat
  8.     UNION all
  9.     SELECT @d,CONVERT(VARCHAR,@d,101),101,'mm/dd/yyyy'
  10.     UNION all
  11.     SELECT @d,CONVERT(VARCHAR,@d,102),102,'yyyy.mm.dd'
  12.     UNION all
  13.     SELECT @d,CONVERT(VARCHAR,@d,103),103,'dd/mm/yyyy'
  14.     UNION all
  15.     SELECT @d,CONVERT(VARCHAR,@d,104),104,'dd.mm.yyyy'
  16.     UNION all
  17.     SELECT @d,CONVERT(VARCHAR,@d,105),105,'dd-mm-yyyy'
  18.     UNION all
  19.     SELECT @d,CONVERT(VARCHAR,@d,106),106,'dd mon yyyy'
  20.     UNION all
  21.     SELECT @d,CONVERT(VARCHAR,@d,107),107,'Mon dd, yyyy'
  22.     UNION all
  23.     SELECT @d,CONVERT(VARCHAR,@d,108),108,'hh:mm:ss'
  24.     UNION all
  25.     SELECT @d,CONVERT(VARCHAR,@d,109),109,'mon dd yyyy hh:mi:ss:mmmAM (or PM)'
  26.     UNION all
  27.     SELECT @d,CONVERT(VARCHAR,@d,110),110,'mm-dd-yyyy'
  28.     UNION all
  29.     SELECT @d,CONVERT(VARCHAR,@d,111),111,'yyyy/mm/dd'
  30.     UNION all
  31.     SELECT @d,CONVERT(VARCHAR,@d,112),112,'yyyymmdd'
  32.     UNION all
  33.     SELECT @d,CONVERT(VARCHAR,@d,113),113,'dd mon yyyy hh:mm:ss:mmm(24h)'
  34.     UNION all
  35.     SELECT @d,CONVERT(VARCHAR,@d,114),114,'hh:mi:ss:mmm(24h)'
  36.     UNION all
  37.     SELECT @d,CONVERT(VARCHAR,@d,120),120,'yyyy-mm-dd hh:mi:ss(24h)'
  38.     UNION all
  39.     SELECT @d,CONVERT(VARCHAR,@d,121),121,'yyyy-mm-dd hh:mi:ss.mmm(24h)'
  40.     UNION all
  41.     SELECT @d,CONVERT(VARCHAR,@d,126),126,'yyyy-mm-dd Thh:mm:ss:mmm(no spaces)'


This part will return mostly a 2 digit year (except for 9, 20 and 21). We are using format values less than 100

  1. DECLARE @d DATETIME
  2.     SELECT @d = GETDATE()
  3.  
  4.     SELECT @d AS OriginalDate,
  5.     CONVERT(VARCHAR,@d,0) AS ConvertedDate,
  6.     0 AS FormatValue,
  7.     'mon dd yyyy hh:miAM (or PM)' AS OutputFormat
  8.     UNION all
  9.     SELECT @d,CONVERT(VARCHAR,@d,1),1,'mm/dd/yy'
  10.     UNION all
  11.     SELECT @d,CONVERT(VARCHAR,@d,2),2,'yy.mm.dd'
  12.     UNION all
  13.     SELECT @d,CONVERT(VARCHAR,@d,3),3,'dd/mm/yy'
  14.     UNION all
  15.     SELECT @d,CONVERT(VARCHAR,@d,4),4,'dd.mm.yy'
  16.     UNION all
  17.     SELECT @d,CONVERT(VARCHAR,@d,5),5,'dd-mm-yy'
  18.     UNION all
  19.     SELECT @d,CONVERT(VARCHAR,@d,6),6,'dd mon yy'
  20.     UNION all
  21.     SELECT @d,CONVERT(VARCHAR,@d,7),7,'Mon dd, yy'
  22.     UNION all
  23.     SELECT @d,CONVERT(VARCHAR,@d,8),8,'hh:mm:ss'
  24.     UNION all
  25.     SELECT @d,CONVERT(VARCHAR,@d,9),9,'mon dd yyyy hh:mi:ss:mmmAM (or PM)'
  26.     UNION all
  27.     SELECT @d,CONVERT(VARCHAR,@d,11),11,'mm-dd-yy'
  28.     UNION all
  29.     SELECT @d,CONVERT(VARCHAR,@d,11),11,'yy/mm/dd'
  30.     UNION all
  31.     SELECT @d,CONVERT(VARCHAR,@d,12),12,'yymmdd'
  32.     UNION all
  33.     SELECT @d,CONVERT(VARCHAR,@d,13),13,'dd mon yyyy hh:mm:ss:mmm(24h)'
  34.     UNION all
  35.     SELECT @d,CONVERT(VARCHAR,@d,14),14,'hh:mi:ss:mmm(24h)'
  36.     UNION all
  37.     SELECT @d,CONVERT(VARCHAR,@d,20),20,'yyyy-mm-dd hh:mi:ss(24h)'
  38.     UNION all
  39.     SELECT @d,CONVERT(VARCHAR,@d,21),21,'yyyy-mm-dd hh:mi:ss.mmm(24h)'


Contributed by: --SQLDenis 17:05, 30 May 2008 (GMT)

Part of SQL Server Programming Hacks

Section Dates

125 Rating: 1.0/5 (2 votes cast)