假设 Sql 数据库表里有3个项(column): “商品名” “截止日期” “开始日期 ” ;问题: 怎么实现在一个表格(比如GridView)显示出 “商品名” 和 “剩余天数” 这2个项的数据,这里的“剩余天数” 是 “截止日期” 减去“开始日期 ” 得到的!
假设 Sql 数据库表里有3个项(column): “商品名” “截止日期” “开始日期 ” ;问题: 怎么实现在一个表格(比如GridView)显示出 “商品名” 和 “剩余天数” 这2个项的数据,这里的“剩余天数” 是 “截止日期” 减去“开始日期 ” 得到的!
select datediff(d,'2009-10-21','2009-10-28') as a
cast((datediff(mi,'2009-10-28 12:00:00','2009-10-29 12:00:00')/60/24) as varchar(100))+
'天'+
cast((datediff(mi,'2009-10-28 12:00:00','2009-10-29 12:00:00')/60)%24 as varchar(100))+
'小时'+
cast((datediff(mi,'2009-10-28 12:00:00','2009-10-29 12:00:00'))%60 as varchar(100))+
'秒'
ALTER FUNCTION [dbo].[DEF_DAY_HOUR_MINUTE] (@date1 datetime,@date2 datetime)
RETURNS varchar(30)
AS
BEGIN
declare @TOTAL_MINUTE int,@DAY_HOUR_MINUTE varchar(30),@MY_DAY int,@MY_HOUR int,@MY_MINUTE int,@TEMP int
set @TOTAL_MINUTE=datediff(minute ,@date1,@date2)
if @TOTAL_MINUTE>=1440
begin
set @MY_DAY=@TOTAL_MINUTE/1440 --天数
set @TEMP=@TOTAL_MINUTE % 1440
if @TEMP>=60
set @MY_HOUR = @TEMP/60 --小时
else
set @MY_HOUR = 0
set @MY_MINUTE=@TEMP % 60 --分钟
set @DAY_HOUR_MINUTE=rtrim(convert(varchar(10),@MY_DAY))+'天 '+rtrim(convert(varchar(10),@MY_HOUR))+'小时 '+rtrim(convert(varchar(10),@MY_MINUTE))+'分钟'
end
else
begin
set @DAY_HOUR_MINUTE='小于一天'
end
return @DAY_HOUR_MINUTE
END执行:
select 商品名,dbo.DEF_DAY_HOUR_MINUTE(开始日期,截止日期) as 剩余天数 from youTable 注:函数中小于一天的没写,楼主可参照大于一天的写法补上!!