sql-server-2008-r2 - texto - diferencia entre date y datetime sql server
¿Cómo convertir el valor de fecha y hora a aaaammddhhmmss en el servidor SQL? (8)
20090320093349 SELECCIONAR CONVERTIR (VARCHAR, @ fecha, 112) + IZQUIERDA (REEMPLAZAR (CONVERTIR (VARCHAR, @ fecha, 114), '':'', ''''), 6)
¿Cómo convertir el valor de datetime
y datetime
a yyyymmddhhmmss
?
por ejemplo Desde 2014-04-17 13:55:12
Para 20140417135512
Desde la versión 2012 de SQL Server puede utilizar:
SELECT format(getdate(),''yyyyMMddHHmmssffff'')
Esta consulta es para convertir DateTimeOffset
en el formato yyyyMMddhhss
con Offset. He reemplazado los guiones, colon(:), period(.)
De los datos, y he guardado el guión para la separación de Offset del DateTime
.
SELECT REPLACE(SUBSTRING(CONVERT(VARCHAR(33),SYSDATETIMEOFFSET(),126), 1, 8), ''-'', '''') +
SUBSTRING(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(33), SYSDATETIMEOFFSET(), 126),''T'',''''),''.'',''''),'':'',''''),9,DATALENGTH(CONVERT(VARCHAR(33), SYSDATETIMEOFFSET(), 126)))
Esto parece funcionar:
declare @d datetime
set @d = ''2014-04-17 13:55:12''
select replace(convert(varchar(8), @d, 112)+convert(varchar(8), @d, 114), '':'','''')
Resultado:
20140417135512
Otra opción que he buscado en Google, pero contiene varios reemplazar ...
SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), ''-'', ''''), ''T'', ''''), '':'', '''')
también esto funciona también
SELECT replace(replace(replace(convert(varchar, getdate(), 120),'':'',''''),''-'',''''),'' '','''')
FORMAT()
es más lento que CONVERT()
. Esta respuesta es ligeramente mejor que la respuesta de @ jpx porque solo hace un reemplazo en la parte de tiempo de la fecha.
112 = yyyymmdd - no format change needed
108 = hh:mm:ss - remove :
SELECT CONVERT(VARCHAR, GETDATE(), 112) +
REPLACE(CONVERT(VARCHAR, GETDATE(), 108), '':'', '''')
SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), ''-'', ''''), ''T'', ''''), '':'', '''')