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

数据类型
如果要存储400米成绩如1'10'2,该用什么样的数据类型呢?开发环境是SQL 2010

------解决方案--------------------
varchar()类型可以
------解决方案--------------------
nchar
------解决方案--------------------
我建议你存储成统一单位或者有个字段是存储统一单位后的结果的,否则这样无法比较
------解决方案--------------------
探讨
如果要存储400米成绩如1'10'2,该用什么样的数据类型呢?开发环境是SQL 2010

------解决方案--------------------
建议直接存秒单位时长,在前台展示时转换显示样式
若要在SQL中按指定样式输出,可在SQL服务器上定义函数,将秒转换为样式定义的字符串
SQL code

drop function dbo.fn_secondstr
go
create function dbo.fn_secondstr (@second int)
returns varchar(16) as 
begin
    declare @hour int, @minu int, @scnd int, @str varchar(16)
    set @hour = (@second / 3600)
    set @minu = (@second / 60)%60
    set @scnd = (@second %60)
    set @str = cast(@hour as varchar)+'"'+cast(@minu as varchar)+''''+cast(@scnd as varchar)
    return @str
end
go

select dbo.fn_secondstr(126)
-- 0"2'6

------解决方案--------------------
varchar()
------解决方案--------------------
直接存varchar,不易使用max,min,avg等统计函数