Con SQL Server 2008, el tipo de datos time
tiene un argumento de precisión opcional (el valor predeterminado es 7). Con esto puedes controlar la cantidad de decimales fraccionarios que se almacenan y muestran.¿Puede la precisión de SQL Server 2008 TIME reducirse a solo horas y minutos?
DECLARE @time time(3)
SET @time = GETDATE()
PRINT @time
Lo anterior se imprimiría esto,
10:47:25.347
La documentación dice la precisión es más pequeño time(0)
. Esto almacenaría e imprimiría 10:47:25
.
¿Es posible reducir la precisión aún más, para eliminar/poner a cero segundos: 10:47
?
Sé que esto se puede hacer manualmente agregando una restricción (DATEPART(seconds, @time) = 0
), realizando operaciones matemáticas en la entrada de datos para poner a cero los segundos y formateando manualmente al imprimir, pero estoy buscando una manera más simple de definir un campo en una tabla como "horas y minutos", del mismo modo que el tipo date
le permite definir un campo como "solo la fecha, sin componente de tiempo".