Converter o formato da data para o formato DD/MMM/AAAA no servidor SQL

tenho uma consulta em sql, tenho de arranjar data num formato de dd/mmm/yy

Exemplo: 25/jun/2013.

Como posso convertê-lo para o servidor SQL?

Author: Somnath Muluk, 2013-06-20

8 answers

Não sei se há uma correspondência exacta para o formato que queres. Mas podes aproximar-te convert() e estilo 106. Em seguida, substitua os espaços:
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
 55
Author: Jonathan Lonowski, 2013-06-20 04:50:27

Já existem múltiplas respostas e tipos de formatação para o SQL server 2008. Mas este método é um pouco ambíguo e seria difícil para você lembrar o número em relação ao formato de data específica. É por isso que nas próximas versões do servidor SQL há uma melhor opção.

Se estiver a usar o SQL Server 2012 ou versões acima, deve usar o formato () função

FORMAT ( value, format [, culture ] )

Com a opção cultura, pode indicar a data de acordo com a sua evento.

DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; 

SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';

US English Result Great Britain English Result  German Result Simplified Chinese (PRC) Result
----------------  ----------------------------- ------------- -------------------------------------
10/1/2011         01/10/2011                    01.10.2011    2011/10/1

US English Result            Great Britain English Result  German Result                    Chinese (Simplified PRC) Result
---------------------------- ----------------------------- -----------------------------  ---------------------------------------
Saturday, October 01, 2011   01 October 2011               Samstag, 1. Oktober 2011        2011年10月1日

Para a solução do OP, podemos usar o seguinte formato, que já é mencionado por @Martin Smith:

FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')

Alguns formatos de data de amostragem:

enter image description here

Se quiser mais formatos de data do servidor SQL, deverá visitar:

  1. formato personalizado da data e hora
  2. Formato-Padrão de data e hora
 37
Author: Somnath Muluk, 2016-08-23 09:22:29

Podemos converter a data em muitos formatos como

SELECT convert(varchar, getdate(), 106)

Isto devolve dd mon yyyy

Mais Aqui {[9] } isto pode ajudá-lo

 29
Author: Nithesh, 2013-06-20 04:51:15

Tente usar a consulta abaixo.

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');  

Resultado: 20 / Jun / 13

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');  

Resultado: 20 / Junho / 2013

 8
Author: Praveen, 2013-06-20 04:51:10

A resposta aceite já dá a melhor solução usando métodos de formatação construídos em 2008.

Note-se que os resultados devolvidos dependem do idioma do login.

SET language Russian

SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/') 
O

Devolve

06/апр/2015

No momento da escrita.

Para as pessoas que se deparam com esta questão em versões mais recentes do servidor SQL um método que evita este problema-e a necessidade de REPLACE é

FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')

On 2005+ it would be possible to write a CLR UDF que aceitou um DateTime, padrão de formatação e cultura para simular o mesmo.

 7
Author: Martin Smith, 2015-04-06 15:40:46
Tenta isto.
select convert(varchar,getdate(),100)

O terceiro parâmetro é o formato, o intervalo é de 100 a 114, Qualquer um deve trabalhar para si.

Se precisar de data em dd/mmm/yyyy use isto:

replace(convert(char(11),getdate(),113),' ','-')

Substituir getdate() pelo nome da sua coluna. Isto funcionou comigo.

 1
Author: Chethan, 2015-02-14 14:49:19

Tenta isto:

select replace ( convert(varchar,getdate(),106),' ','/')
 1
Author: KD29, 2015-12-04 11:26:00

Qualquer pessoa que tente introduzir manualmente a data na variável 'date type' do servidor sql use este formato ao introduzir:

'yyyy-mm-dd'

 0
Author: IteratioN7T, 2017-09-07 09:59:47