Hora Militar o Formato 24 Horas en SQL SERVER


Es curioso los problemas que nos encontramos a diario al desarrollar, siempre resulta que hay algo nuevo y algo que no sabemos, aprendemos día a día con cada cosa que hacemos, y cada código que escribimos.
El día de hoy les traigo una instrucción que si bien es muy sencilla, puede ahorrarnos varias horas de búsqueda infructuosa en san google. Se trata de convertir una hora en sql server al formato militar o formato de 24 horas.
Para esto tenemos varias formas:


SELECT CONVERT(VARCHAR(8), dateadd(HOUR,12, cast('2017-01-01 10:15:00' as datetime)), 108) 
AS HoraMilitar

Veamos lo que se hace en la instrucción anterior:

Tenemos la fecha y hora: 2017-01-01 10:15:00 la cual convertimos a datetime cast('2017-01-01 10:15:00' as datetime) luego le sumamos 12 horas para ejemplificar el ejercicio "dateadd(HOUR,12," y por ultimo pasamos a varchar para darle formato militar

CONVERT(VARCHAR(8), "Aquí la fecha",108)

Notese que uso el código 108 de conversión, este le indica al motor de base de datos que queremos la hora militar.

Otra forma mas sencilla es convirtiendo a datetime la fecha y hora agregandole AM/PM segun el formato que necesitemos:

SELECT  cast('2017-01-01 10:15:00PM' as datetime) AS HoraMilitar


La diferencia radica en el resultado devuelto, mientras que el primer ejemplo, nos devuelve solo el formato fecha: 22:15:00 el segundo ejemplo nos devuelve el formato completo: 2017-01-01 22:15:00.000

Si tienen una forma mas sencilla o simplemente quieren expresar su opinión, por favor dejen sus comentarios!


Espero que lo disfruten, compartan y comenten. ;)

"Si se puede imaginar... se puede programar."

No hay comentarios:

Publicar un comentario

Google