sqlserver中月租计算问题,如何实现开始日期在15号之前算整月,在15以后算半月? select datediff(m,datecol,'2007-12-30')* 月租 + case when datepart(d,datecol) > = 15 then 0.5 else 1.0 end * 月租from t 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想用sql数据库计算月租。某个时间X(如2007-10-16)开通的客户,第一个月,存在15号之前和之后的问题,15号之前算全价,15号之后算半价,之后的月份按全价算。如何用一个表达式计算X到12月份的月租。不用程序,直接在select 语句的表达式中实现------少个开户时间.不好算. select 价格 = ((datediff(month, X, convert(varchar(8), X, 120) + '31') +(case when datepart(dd, X) < 15 then 1 else 0.5 end)) * 月租 --3楼截止月份错了select 价格 = ((datediff(month, X, convert(char(4), year(X)) + '-12-31') +(case when datepart(dd, X) < 15 then 1 else 0.5 end)) * 月租 select case when month(开户时间) = 12 and day(开户时间) <= 15 then 0.5 when month(开户时间) < 12 then datediff(month , 开户日期 , '2007-12-31') * 1.0 endfrom tb select datediff(m,datecol,datepart(y,datecol)+'-12-30')* 月租 + case when datepart(d,datecol) > = 15 then 0.5 else 1.0 end * 月租from t select datediff (m,X,'2007-12-30')*月租 -case when datepart(d,X)>=15 then 0.5 else 0.0 end *月租from t我感觉是这个,别笑话,我新人 求助:如何实现一个循环,每次循环都取表中某字段的一个值 字符串函数问题 求动态tsql代码:总分分数段 时间段问题,如何进行合并,感觉很难呀!谢谢! 请教各位大神,这个存储过程为什么返回两个结果集?非常感谢 这样的授权语句 grant 怎么写? 请教编写存储过程的完整资料,电子档最好!(URL也行) 数据表有个DateTime字段,如何用SQL语句查询前n天,或者前n月、年的数据? 一个关于想了好长时间都想不通的问题 EXCEL横打的命令 SQL2000用户连接不上数据库 SQL2000的临时表不可用,怎么回事呢?
------少个开户时间.不好算.
select 价格 = ((datediff(month, X, convert(varchar(8), X, 120) + '31') +
(case when datepart(dd, X) < 15 then 1 else 0.5 end)) * 月租
--3楼截止月份错了
select 价格 = ((datediff(month, X, convert(char(4), year(X)) + '-12-31') +
(case when datepart(dd, X) < 15 then 1 else 0.5 end)) * 月租
when month(开户时间) < 12 then datediff(month , 开户日期 , '2007-12-31') * 1.0
end
from tb
case when datepart(d,datecol) > = 15 then 0.5 else 1.0 end * 月租
from t
case when datepart(d,X)>=15 then 0.5 else 0.0 end *月租
from t
我感觉是这个,别笑话,我新人