Publicado el Deja un comentario

Conversión de cadena de texto a DATETIME

Consultas que convierten y manipulan un objeto DATETIME de SQL Server

Una de las funcionalidades que , aunque en ocasiones son un dolor de cabeza, son interesantes de conocer, ya que nos permiten manejar de mejor forma la información que tenemos en base de datos, ya sea para mostrar por pantalla o para la exportación de datos para ser consumidos por alguna persona, y siempre es bueno que lo entreguemos la información en el formato más natural posible, ya que la gran mayoría de los usuarios son personas comunes y corrientes y no seres sobrenaturales a-dimensionales como los informáticos que entendemos el glorioso valor de un TIMESTAMP. Es por ello que presento la siguiente funcionalidad que he ocupado por mucho tiempo y no había notado que no lo había compartido, es por ello que les presento una pequeña porción, pero muy útil, del uso de unas funcionalidades muy básicas en el manejo de fechas usando como fuente una fecha que viene en cadena de texto, esto porque en muchas ocasiones me he topado con el hecho que los datos vienen desde la fuente en String del tipo YYYYMMDD, pero, calma, que no panda el cúnico… porque hay solución.

Para la transformación del dato de texto a Datetime usé la función CAST de SqlServer y luego de transformarlo a fecha, le resté un mes con la función DATEADD y finalmente le di un formato como yo necesito. Sin más acá les dejo el código sencillo y espero que más que útil para más de alguno.

-- Obtención de un objeto DATETIME desde una cadena de texto

SELECT CAST('20200101' AS DATETIME)  AS fecha

-- resultado 
-- 01/01/2020 0:00:00


-- Resta de un mes a la fecha obtenida desde una cadena de texto

SELECT dateadd(month, -1, CAST('20200101' AS DATETIME))  AS fecha

-- resultado
-- 01/12/2019 0:00:00
                               
                               
-- Formatea una fecha a un patrón de fecha definido por el usuario
                               
SELECT format( dateadd(month, -1, CAST('20200101' AS DATETIME)), 'dd-MM-yyyy HH:mm:ss')  AS fecha

-- resultado
-- 01/12/2019 0:00:00

HOLA! si te gustó o te fue útil, por favor, considera dejarme un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.