库中的时间是已字符型存储的,格式"23:30","22:00",我现在想求得时间差用什么函数求得啊,比如想求得"23:30"和"22:00"之间的时间差,结果想得到1.5小时用什么函数得到呢
楼下的方法我试了,只能得到数据库的第一行答案,然后提示
"Msg 242, Level 16, State 3, Line 2
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。"
上面的越界问题我找到了,是因为我库中很多时间是24:00,如果没有24:00就一切正常,请问怎么解决这个问题啊,我里面必须要有24:00啊
直接将字符型的时间数据转换为日期时间型然后直接求差值求得的结果是"01:30:00",怎么转换成1.5啊。
sql 字符型时间之间求时间差
答案:4 悬赏:40 手机版
解决时间 2021-04-10 06:40
- 提问者网友:缘字诀
- 2021-04-09 19:37
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-04-09 20:02
select cast(datediff(s,'22:00','23:30')/3600 as varchar(10))+':'+
cast(datediff(s,'22:00','23:30') % 3600/60 as varchar(10))+':'+
cast(datediff(s,'22:00','23:30') % 3600%60 as varchar(10))
cast(datediff(s,'22:00','23:30') % 3600/60 as varchar(10))+':'+
cast(datediff(s,'22:00','23:30') % 3600%60 as varchar(10))
全部回答
- 1楼网友:不想翻身的咸鱼
- 2021-04-09 23:08
select datediff(minute,'22:00','23:30')/60.0
这样试一下
- 2楼网友:山有枢
- 2021-04-09 21:54
你需要先将字符型的时间数据转换为日期时间型然后直接求差值。
用convert()函数
- 3楼网友:忘川信使
- 2021-04-09 20:54
想查询的话,不用管他是什么类型,条件这样写
select * from 表名
where [时间列]>='2009年02月01日'
and [时间列]<='2010年05月12日'
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯