【问题标题】:How to get the Hour between two Dates in SQL如何在 SQL 中获取两个日期之间的小时数
【发布时间】:2014-07-28 15:35:09
【问题描述】:

我想知道如何在 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

这是结果:

第二个是这样的:

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

结果:

如何将 0.500000 转换为 0.5?

如果你能帮助我,谢谢。祝你有美好的一天。

【问题讨论】:

  • 什么关系型数据库? Round 似乎可以工作或格式化......所有持续时间的值都应该是 999.9 吗? COLUMN 不仅仅是一行所需的最小最大范围和显示值是多少?输出应该是数字还是文本? (或者重要吗?)

标签: sql sql-server date decimal


【解决方案1】:

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

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

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

你也可以用ROUND()包裹它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 2014-07-13
    • 2015-06-18
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多