solo obtener minutos insertar hora formato fecha entre ejemplo diferencia sql-server datetime sql-server-2008-r2 datetime-format

sql server - obtener - Convierta una cadena con el formato ''AAAAMMDDHHMMSS'' a fecha y hora



obtener hora sql server (1)

Reconozco que se han publicado muchas preguntas sobre la conversión de cadenas a datetime y datetime pero no he encontrado nada para convertir una cadena como 20120225143620 que incluye segundos.

Intentaba realizar una conversión limpia sin subcadenas de cada segmento y concatenando con / y :

¿Alguien tiene alguna sugerencia?


Puede usar el método STUFF() para insertar caracteres en su cadena para formatearla en un valor que SQL Server pueda comprender:

DECLARE @datestring NVARCHAR(20) = ''20120225143620'' -- desired format: ''20120225 14:36:20'' SET @datestring = STUFF(STUFF(STUFF(@datestring,13,0,'':''),11,0,'':''),9,0,'' '') SELECT CONVERT(DATETIME, @datestring) AS FormattedDate

Salida:

FormattedDate ======================= 2012-02-25 14:36:20.000

Este enfoque funcionará si su cadena siempre tiene la misma longitud y formato, y funciona desde el final de la cadena hasta el inicio para producir un valor en este formato: YYYYMMDD HH:MM:SS

Para esto, no necesita separar la porción de fecha de todos modos, ya que SQL Server podrá entenderlo mientras está formateado.

Lectura relacionada:

STUFF (Transact-SQL)

La función STUFF inserta una cadena en otra cadena. Elimina una longitud especificada de caracteres en la primera cadena en la posición inicial y luego inserta la segunda cadena en la primera cadena en la posición de inicio.

STUFF (character_expression, start, length, replaceWith_expression)