Converter e/ou Formatar DATA e HORA no Microsoft SQL Server
Tenho um campo do tipo SmallDateTime contendo 2017-05-30 16:16:10.730.
Desejo os seguintes resultados:
GetDate | yyyymmdd | yyyy-mm-dd | dd/mm/yyyy |
2017-05-30 16:16:10.730 | 20170530 | 2017-05-30 | 30/05/2017 |
Solução:
Para resolver este problema usei a função CONVERT passando o parâmetro style, ele será o responsável por apresentar o resultado da conversão com um formato de exibição.
Cada código do style indica um formato, mais informações na documentação T-SQL.
Syntax for CONVERT: CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Comando:
select getdate() AS ‘GetDate’
, convert(varchar(10), getdate(), 112) AS DateFormat_ISO_Long
, convert(varchar(10), getdate(), 126) AS DateFormat_ISO8601_Long
, convert(varchar(10), getdate(), 103) AS DateFormat_British_French_Long
Desejo a Data e Hora SEM espacos
GetDate | yyyy-mm-ddThh:mm:ss.mmmZ |
2017-05-30 16:16:10.730 | 2017-05-30T16:16:10.730 |
Solução:
select getdate() AS ‘GetDate’
, convert(varchar(19), getdate(), 126) AS DateFormat_ISO8601_Long — (no spaces)
Desejo a Hora com formados diferentes
GetDate | hh:mm | hh:mm:ss | hh:mm:ss.mmm |
2017-05-30 16:16:10.730 | 16:16 | 16:16:10 | 16:16:10.730 |
Solução:
select getdate() AS ‘GetDate’
, convert(varchar(5), getdate(), 114) AS HoraMinuto
, convert(varchar(8), getdate(), 114) AS HoraMinutoSegundo
, convert(varchar(12), getdate(), 114) AS HoraMinutoSegundoMilisegundo