Как преобразовать дату в формат DD-MON-YYYY HH24: MI: SS? - PullRequest
2 голосов
/ 04 августа 2011

Может кто-нибудь помочь мне с форматом даты SQL?

Следующее утверждение

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

Я хочу результаты как

Aug-04-2011 08:08:08

Спасибо!

Ответы [ 3 ]

3 голосов
/ 04 августа 2011
SELECT
  LEFT(DATENAME(MONTH, Date), 3) + '-' +
  RIGHT(100 + DAY(Date), 2) + '-' +
  DATENAME(YEAR, Date) + ' ' +
  CONVERT(varchar, Date, 108)
FROM (SELECT Date = GETDATE()) s
2 голосов
/ 04 августа 2011

С макушки головы, я думаю, это:

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) 
1 голос
/ 04 августа 2011

К сожалению, встроенный конвертер не позволит вам форматировать дату точно так, как вы хотите.

С небольшой манипуляцией вы можете добраться туда:

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

Вы можете поместить это в UDF и вызывать его, когда хотите, чтобы ваша дата была отформатирована таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...