SQL自定义函数实现时间转换
来源:互联网 发布:苹果手机开启移动数据 编辑:程序博客网 时间:2024/06/08 13:40
如有转载请包含出处http://blog.csdn.net/aohan
问题来源:
数据库里面显示2个时间差
select datediff(minute ,'2008-11-20 19:20:00','2008-11-20 20:50:00')
这样子得出来的是 90 分钟
但我要显示成 1:30分 该怎么做,?
解决:
select convert(varchar(5),dateadd(ss, datediff(ss ,'2008-11-20 19:20:00','2008-11-20 20:50:00') ,108),108)
又问:
要是我的时间差大于24小时,那显示出来的就不正确了阿,
应该要显示 小时是大于 24的一个数,而不是又回过去了阿。。
下面用自定义函数的方法解决
Create function [dbo].[f_second_Time] (@second int)
returns varchar(16)
as
BEGIN
/* 根据传入的秒数返回秒数所对应的时间,格式为天/时/分/秒
Create by cjs 2008-11-20
使用: select dbo.[f_second_Time](214580)
注意:可查询的最大秒数为35999999,即9999时59分59秒,
这与返回中cast(@Hours as varchar(4))有关,如果需要更大的精度
可以在返回时改成如cast(@Hours as varchar(8))
*/
declare @Secs int
declare @Mins int
declare @Hours int
declare @Days int
set @Secs=@second%60 --秒
set @Mins=(@second-(@second%60))/60
set @Hours=(@Mins-(@Mins%60))/60
set @Mins=@Mins-@Hours*60 ---'分钟
--如果要转成日,用下面注释的部分,即把/*去掉
/*
set @Days=(@Hours-(@Hours%24))/24 ---'日
set @Hours=@Hours-@Days*24 ---'小时
return cast(@Days as varchar(6))
+'日'+
cast(@Hours as varchar(4))
+'时'+
cast(@Mins as varchar(4))
+'分'+
cast(@Secs as varchar(4))
+'秒'
*/
--如果要转成日,用上面注释的部分,即把*/去掉,并且把下面的返回注释
return cast(@Hours as varchar(6))+'时'+cast(@Mins as varchar(4))+'分'
+cast(@Secs as varchar(4))+'秒'
END
Go
--调用
select [dbo].[f_second_Time]( datediff(ss ,'2008-11-12 19:20:00','2008-11-20 20:51:00'))
以下为结果
----------------
193时31分0秒
(1 行受影响)
- SQL自定义函数实现时间转换
- sql 转换 自定义函数
- SQL转换时间函数用法
- PHP实现时间转换函数
- oracle自定义函数示例--实现时间和数字的来回转换
- SQL Server Convert函数时间转换
- sql 日期时间函数+格式转换
- sql server自定义进制转换函数
- sql语句中 时间数值转换为时间格式函数
- 数据库自定义函数(date和utc时间相互转换)
- 用jsp 自定义标签实现字符串转换时间格式
- 用jsp 自定义标签实现字符串转换时间格式
- 创建自定义标签,并实现时间转换和输出功能
- sql server日期函数getdate()时间格式转换字符串
- sql时间转换
- SQL时间转换
- SQL的时间转换
- sql时间格式转换
- 代码乐趣
- 代码分析工具FindBugs 安装和错误说明
- hhh
- FxCorp
- ARM嵌入式系统开发之发送过程的实现
- SQL自定义函数实现时间转换
- JAVA提高教程(1)-认识Set集合
- JAVA提高教程(2)-认识Set集合之HashSet
- 操作Gridview单元格
- 字符编码研究
- J2ME作业,手机用户管理系统
- JAVA提高教程(3)-认识Set集合之LinkedHashSet
- 创业故事
- JAVA提高教程(4)-认识Set集合之TreeSet