Qual comando SQL é recomendado para converter uma data em yyyymmdd
formato?
convert(varchar(8), getdate(), 112);
ouconvert(varchar, getdate(), 112)
Percebo que se eu usar o segundo, ele acrescentará dois espaços após a data. (por exemplo [ 20130705
] - observe os dois espaços após o valor 20130705
)
É recomendado usar a primeira instrução SQL?
Por padrão, conforme documentado no MSDN , se nenhum comprimento for especificado para varchar, o padrão será 30 ao usar CAST ou CONVERT e o padrão será 1 quando declarado como uma variável.
Para demonstrar, tente isto:
Isso é muito perigoso, pois o SQL Server trunca o valor silenciosamente, sem sequer um aviso e pode levar a bugs inesperados.
No entanto, chegando ao tópico em questão, no cenário fornecido, com ou sem comprimento, não faz diferença entre as duas declarações e não consigo ver os 2 espaços à direita de que você está falando. Tente isto:
Você notará que a
DATALENGTH()
função retorna 8 em ambos os casos.Raj