如何将日期转换为DD-MON-YYYY HH24:MI:SS格式?

时间:2011-08-04 12:11:52

标签: sql sql-server sql-server-2005

有人可以帮我解决SQL日期格式吗?

以下陈述

 SELECT convert(VARCHAR(20),GETDATE(),113) 
returns 
  04 Aug 2011 08:08:08.

我希望结果如

Aug-04-2011 08:08:08

谢谢!

3 个答案:

答案 0 :(得分:3)

SELECT
  LEFT(DATENAME(MONTH, Date), 3) + '-' +
  RIGHT(100 + DAY(Date), 2) + '-' +
  DATENAME(YEAR, Date) + ' ' +
  CONVERT(varchar, Date, 108)
FROM (SELECT Date = GETDATE()) s

答案 1 :(得分:2)

我认为:

SELECT convert(VARCHAR(20),GETDATE(),120)  

编辑:

这将有效:

SELECT datename(day, GETDATE()) + '-' 
   + substring(datename(month, GETDATE()),0,4) + '-' 
   + datename(year, GETDATE()) + ' '
   + datename(hh, GETDATE()) + ':'
   + datename(mi, GETDATE()) + ':'
   + datename(ss, GETDATE())

第二次编辑:

SELECT substring(datename(month, GETDATE()),0,4) + '-' 
   + datename(day, GETDATE()) + '-' 
   + datename(year, GETDATE()) + ' '
   + datename(hh, GETDATE()) + ':'
   + datename(mi, GETDATE()) + ':'
   + datename(ss, GETDATE())

第三次编辑:

select substring(datename(month, GETDATE()),0,4) + '-'     
    + right(datename(day, GETDATE())+100,2) + '-'     
    + datename(year, GETDATE()) + ' '    
    + right(datename(hh, GETDATE())+100,2) + ':'    
    + right(datename(mi, GETDATE())+100,2) + ':'    
    + right(datename(ss, GETDATE())+100,2) 

答案 2 :(得分:1)

不幸的是,内置转换功能无法让您完全按照自己的意愿格式化日期。

通过一点点操作,你可以到达那里:

SELECT stuff(stuff(convert(VARCHAR(20),GETDATE(),113), 3, 1, '-'), 7, 1, '-')

你可以把它放在一个UDF中,并在你希望以这种方式格式化日期时调用它。