sql-server-2005 - formato - sql server date format yyyy-mm-dd hh mm ss
cómo formatear getdate en YYYYMMDDHHmmSS (6)
En SQL Server, ¿cómo formateo getdate()
en YYYYMMDDHHmmSS
donde HH
es formato de 24 horas?
Tengo el YYYYMMDD
hecho con
select CONVERT(varchar,GETDATE(),112)
pero eso es todo lo que tengo.
Gracias.
¡Otra opción!
SELECT CONVERT(nvarchar(8), GETDATE(),112) +
CONVERT(nvarchar(2),DATEPART(HH,GETDATE())) +
CONVERT(nvarchar(2),DATEPART(MI,GETDATE())) +
CONVERT(nvarchar(2),DATEPART(SS,GETDATE()));
Cerrar pero no exactamente lo que está pidiendo:
select CONVERT(varchar, GETDATE(), 126)
p.ej
2011-09-23T12:18:24.837
(aaaa-mm-ddThh: mi: ss.mmm (sin espacios), ISO8601 sin zona horaria)
Ref: CAST y CONVERTIR
No hay forma de especificar un formato personalizado con CONVERT()
. La otra opción es realizar manipulación de cadenas para crear en el formato que desee.
Prueba esto:
seleccione CONVERTIR (varchar, GETDATE (), 120), por ej.
2011-09-23 12:18:24 (aaaa-mm-dd hh: mi: ss (24h), ODBC canónico).
Hth.
Solo para cualquiera que busque esta funcionalidad que tiene SQL Server 2012, puede usar la función FORMATO:
SELECT FORMAT ( GETDATE(), ''yyyyMMddHHmmss'') AS ''Custom DateTime''
Esto permite que cualquier cadena de formato .NET lo convierta en una nueva adición útil.
la conversión de fecha y hora de esa manera requiere más de una llamada para convertir. El mejor uso para esto es en una función que devuelve un varchar.
select CONVERT(varchar,GETDATE(),112) --YYYYMMDD
select CONVERT(varchar,GETDATE(),108) --HH:MM:SS
Póngalos juntos así dentro de la función
DECLARE @result as varchar(20)
set @result = CONVERT(varchar,GETDATE(),112) + '' '' + CONVERT(varchar,GETDATE(),108)
print @result
20131220 13:15:50
Como Thinhbk publicó, puede usar select CONVERT(varchar,getdate(),20)
o select CONVERT(varchar,getdate(),120)
para acercarse lo que desea.
select replace(
replace(
replace(convert(varchar(19), getdate(), 126),
''-'',''''),
''T'',''''),
'':'','''')