¿Cómo convertir una cadena de texto a fecha y hora en SQL?

En este artículo te mostraré cómo convertir un campo de texto a fecha y hora, el campo se encuentra en formato de cadena (varchar, nvarchar, etc.) y lo convertiremos a en un tipo DateTime de SQL.


Este ejemplo te podrá servir para cuando quieres formatear una fecha, o quieres convertir una fecha en la base de datos, en seguida te muestro el ejemplo:

 

SELECT convert(datetime, '2013-07-15 20:44:11.500', 121) as Fecha1
SELECT convert(datetime, '07/15/13', 1) as Fecha2

Si ejecutas los ejemplos podras ver que te regresan un campo tipo DateTime, con Fecha, Hora, Minutos y segundos.

Este es un ejemplo rápido y espero que les sea de utilidad, si tienen dudas o comentarios, con confianza escríbenos y te responderemos inmediatamente.

Artículos relacionados
3 Comentarios
  • reijo Comentar
    Wednesday, March 19, 2014

    Estoy haciendo una ordenación por mysql y php, ejecuto la siguiente instrucción y no funciona: SELECT *, convert(datetime, fecha, 1) as Fecha2 FROM participantes ORDER BY Fecha2 Donde "fecha" es un campo varchar de la tabla "participantes" con el siguiente formato: 25/01/2014

    • José I. Estrada HdzComentar
      Wednesday, March 19, 2014

      Hola Reijo, Prueba lo siguiente: SELECT *, convert(datetime, fecha, 1) as Fecha2 FROM participantes ORDER BY convert(datetime, fecha, 1) as Fecha2 Comentanos si te funciona. Saludos

  • reijo Comentar
    Thursday, March 20, 2014

    gracias por tu comentario pero no ha funcionado, he probado con la sentencia que me has dado y con: SELECT * FROM participantes ORDER BY convert(datetime, fecha, 1) Por lógica debería funcionar, pero no ha habido suerte, al final lo he ordenado por php. No obstante estaria interesado en esta funcion. saludos y gracias

  • Zero Comentar
    Tuesday, April 7, 2015

    Yo utilizo la siguiente expresion SELECT * FROM tabla WHERE campofecha BETWEEN CONVERT(DATETIME,(@ANNO+'-'+@DIA+'-'+@MES+ ' ' + '00:00:00')) AND CONVERT(DATETIME,(@ANNO+'-'+@DIA+'-'+@MES+ ' ' + '23:59:59'))) de esta manera no hay pierde con el Date y el DateTime y la fecha la genero con el GETDATE() y la separo por dias=@DIA, Año=@ANNO y Mes=@MES :3

Enviame un comentario