50分 把时分秒转换成秒

成都锦福工作室 2010-09-28 04:11:45
以前的类型:varchar 存储时分秒数据 例如:00:02:10
有没有什么办法转换成 int类型:130
...全文
319 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxmcxm 2010-09-30
  • 打赏
  • 举报
回复
declare @d datetime
set @d=convert(datetime,'2000-1-1 '+'00:02:10');
select datepart(hh,@d)*3600+datepart(mi,@d)*60+datepart(ss,@d)
完美算法 2010-09-29
  • 打赏
  • 举报
回复

DECLARE @time time(4)
set @time='00:02:10'
select DATEDIFF(s,0,@time)
ChinaITOldMan 2010-09-29
  • 打赏
  • 举报
回复
select datediff(ss,convert(varchar(10),getdate(),120) ,convert(varchar(11),getdate(),120) + '00:02:10')



闹铃 2010-09-29
  • 打赏
  • 举报
回复

字符串处理函数用的多了 自然就会了
ghs79 2010-09-29
  • 打赏
  • 举报
回复
select datediff(ss, 0, '00:02:10' )
feilniu 2010-09-29
  • 打赏
  • 举报
回复

DECLARE @time varchar(20)
SET @time = '00:02:10'
SELECT DATEDIFF(second,'',@time)
abuying 2010-09-29
  • 打赏
  • 举报
回复


declare @str='00:02:10'
select datediff(second,convert(varchar(10),'00:00:00',108),@str)
--130
wangjianming45 2010-09-29
  • 打赏
  • 举报
回复
SELECT DATEDIFF(second,'00:00:00','00:02:10')
stzorro 2010-09-28
  • 打赏
  • 举报
回复
剪切三下字符串,时分秒就出来了,然后时*3600+分*60+秒
东那个升 2010-09-28
  • 打赏
  • 举报
回复
DECLARE @time varchar(10)
set @time='00:02:10'
select datediff(s,0,CAST(@time as datetime)) as dts1
select convert(int,substring(convert(varbinary(8),CAST(@time as datetime)),5,4))/300 as dts1

dts1
-----------
130

(1 行受影响)

dts1
-----------
130

(1 行受影响)
cjzm83 2010-09-28
  • 打赏
  • 举报
回复

--sql server 2008

select datediff(s,'00:00:00',CONVERT(time, '00:02:10'))
东那个升 2010-09-28
  • 打赏
  • 举报
回复
DECLARE @time time(4)
set @time='00:02:10'
select DATEDIFF(s,0,@time)

-----------
130

(1 行受影响)
ws_hgo 2010-09-28
  • 打赏
  • 举报
回复
楼主人了问题解决啦
可以结贴啦
yhtapmys 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dawugui 的回复:]
SQL code
create table tb(col varchar(8))
insert into tb values('00:02:10')
insert into tb values('01:02:10')
insert into tb values('10:02:10')

select datediff(ss,convert(varchar(10),getdate(),1……
[/Quote]

+1
喜-喜 2010-09-28
  • 打赏
  • 举报
回复
declare @sql varchar(10)
set @sql='00:02:10'
select [second]=cast(left(ltrim(@sql),2) as int)*3600
+cast(substring(@sql,charindex(':',@sql)+1,2) as int)*60
+cast(right(rtrim(@sql),2) as int)
/*
second
--------------------
130
*/
kevn 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dawugui 的回复:]
引用楼主 softcoke_320 的回复:
以前的类型:varchar 存储时分秒数据 例如:00:02:10
有没有什么办法转换成 int类型:130



SQL code
select datediff(ss,convert(varchar(10),getdate(),120) ,convert(varchar(11),getdate(),120) + '00:02:10')……
[/Quote]
不错
dawugui 2010-09-28
  • 打赏
  • 举报
回复
create table tb(col varchar(8))
insert into tb values('00:02:10')
insert into tb values('01:02:10')
insert into tb values('10:02:10')

select datediff(ss,convert(varchar(10),getdate(),120) ,convert(varchar(11),getdate(),120) + col) from tb

/*

-----------
130
3730
36130

(所影响的行数为 3 行)
*/
dawugui 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 softcoke_320 的回复:]
以前的类型:varchar 存储时分秒数据 例如:00:02:10
有没有什么办法转换成 int类型:130
[/Quote]

select datediff(ss,convert(varchar(10),getdate(),120) ,convert(varchar(11),getdate(),120) + '00:02:10')

/*

-----------
130

(所影响的行数为 1 行)
*/


ws_hgo 2010-09-28
  • 打赏
  • 举报
回复
declare @sql varchar(20)
set @sql='00:02:10'
select cast(substring(right(@sql,5),0,charindex(':',right(@sql,5))) as int)*60+
substring(right(@sql,5),charindex(':',right(@sql,5))+1,len(right(@sql,5))-charindex(':',right(@sql,5)))


-----------
130

(1 行受影响)

34,576

社区成员

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

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