日期:2014-05-18  浏览次数:20598 次

强烈求救:将字符转换为时间的疑难杂症(初学者),给分不会少的
您好,我有一个问题要求救于你。
问题是这样的:在sql   2000   的存储过程中,我想拿当前时间与已设定好的时间进行对比,请问怎样进行时间提取?
提示:如当前的时间为2007-5-21   19:30:30,这个是用getdate()获取,设定好的日期为2007-5-10   19:20:30.就想提取当前的19:30:30与设定好的19:20:30进行对比。如果用convert(char(8),getdate(),108)可以获取hh:mm:ss,但转换后就为字符型,这时是获取了 '19:30:30 '   和   '19:20:30 ',但这两个字符串怎么转换为hh:mm:ss的时间类型进行对比?谢谢!
邮箱:wdy135@yahoo.com.cn

------解决方案--------------------
不用转换为hh:mm:ss的时间类型, '19:30:30 ' 和 '19:20:30 ' 两个字符串进行比较就是对的,
因为格式一样 ,小时是00到23 ,分钟 00 到 59 ,秒也是一样,所以字符比较就可以了,还有 没有SQL 2000 没有hh:mm:ss的时间类型, 你可以直接 '19:30:30 ' 转换成 datatime, 就是
'1900-01-01 19:30:30 ' ,加上同一的年 ,比较也是对的
------解决方案--------------------
select datediff(second, '1901-01-01 '+Convert(varchar(8),getdate(),108), '1901-01-01 '+Convert(varchar(8),dateadd(second,1,getdate()),108))