使用SQL,求两个时间的小时差

3721_zcx 2013-03-20 10:46:54
需要使用SQL求两个时间的小时差,
例如时间:'2013-03-04 15:30:00.000' , '2013-03-04 17:00:00.000'。
我需要返回的是1.5小时。

如果使用:SELECT DATEDIFF( Hour, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000'),
它返回的是2,这不是我想要的结果。

请问各位还有什么方法?
...全文
1974 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
-Tracy-McGrady- 2013-03-20
  • 打赏
  • 举报
回复
SELECT DATEDIFF( MI, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0
duoxu1983 2013-03-20
  • 打赏
  • 举报
回复
SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')*1.0/60
chuifengde 2013-03-20
  • 打赏
  • 举报
回复
DECLARE @a DATETIME,@b DATETIME 
SELECT @a='2013-03-04 15:30:00.000',@b=  '2013-03-04 17:00:00.000'

SELECT DATEDIFF(minute,@a,@b)/60.0
哥眼神纯洁不 2013-03-20
  • 打赏
  • 举报
回复

select datediff(minute,'2013-03-04 15:30:00.000','2013-03-04 17:00:00.000')/60.0
szm341 2013-03-20
  • 打赏
  • 举报
回复
SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0 hour是舍去分钟的,不会计算具体分钟
LongRui888 2013-03-20
  • 打赏
  • 举报
回复
引用 7 楼 ZhangCaixia_China 的回复:
引用 2 楼 szm341 的回复: SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0 hour是舍去分钟的,不会计算具体分钟 现在结果是:1.500000,我需要对其切割,仅留下1.5, 请问应该怎么做? 我这样写报错 SQL code ? 123 ……
先转化成varchar类型,再substring就行:
SELECT substring(cast(DATEDIFF( mi, '2013-03-04 15:30:00.000',  '2013-03-04 17:00:00.000')/60.0 as varchar),1,3)
szm341 2013-03-20
  • 打赏
  • 举报
回复
SELECT convert(decimal(18,1),DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0) 类型转换啊,decimal(18,1)这个1是小数位
  • 打赏
  • 举报
回复
引用 7 楼 ZhangCaixia_China 的回复:
引用 2 楼 szm341 的回复:SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0 hour是舍去分钟的,不会计算具体分钟 现在结果是:1.500000,我需要对其切割,仅留下1.5, 请问应该怎么做? 我这样写报错 SQL code?12SELECT……
SELECT cast(DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0 as decimal(28,1))
3721_zcx 2013-03-20
  • 打赏
  • 举报
回复
引用 2 楼 szm341 的回复:
SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0 hour是舍去分钟的,不会计算具体分钟
现在结果是:1.500000,我需要对其切割,仅留下1.5, 请问应该怎么做? 我这样写报错

SELECT SUBSTRING((SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000',
 '2013-03-04 17:00:00.000')/60.0), 1,3)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧