如何在SQL中获取两个日期之间的小时

时间:2014-07-28 15:35:10

标签: sql sql-server date decimal

我想知道如何在SQL Server中获取两个日期之间的确切时间。

我有两个问题,但我没有得到我想要的时间;你能帮我解决这个问题吗?第一个是:

SELECT p.Id, p.FechaInicio, p.FechaFin, 
       DATEDIFF(MINUTE, p.FechaInicio, p.FechaFin) / 60 AS 'Duracion' 
FROM Programaciones p
INNER JOIN Usuarios u ON u.Id = p.Programacion_Usuario
WHERE u.Nombre = 'User 1'
ORDER BY p.FechaCreacion DESC

结果如下:

enter image description here

第二个是这个:

SELECT p.Id, p.FechaInicio, p.FechaFin, 
       DATEDIFF(MINUTE, p.FechaInicio, p.FechaFin) / 60.0 as 'Duracion' 
FROM Programaciones p
INNER JOIN Usuarios u ON u.Id = p.Programacion_Usuario
WHERE u.Nombre = 'User 1'
ORDER BY p.FechaCreacion DESC

结果:

enter image description here

如何将0.500000转换为0.5?

谢谢你能帮助我。祝你有个美好的一天。

1 个答案:

答案 0 :(得分:0)

您可以将您的号码转换为DECIMAL()以定义要保留的小数位数:

CAST(DATEDIFF(MINUTE, p.FechaInicio, p.FechaFin) / 60.0 AS DECIMAL(5,1)) as 'Duracion' from Programaciones

DECIMAL()中的第一个参数是总数中的位数,第二个是小数点后面的位数,在上面的例子中,总共5位数,小数点后面的1位。

您也可以将其包装在ROUND()