1、sql server中需要写sql语句来计算百分率:
先来个例子:
SELECT '专职男教师人数' as '类别',COUNT(*) as '数量' , ltrim(Convert(numeric(9,2),(SELECT COUNT(*)FROM PT_TEACHER WHERE PARTTIMEJOB='专职教师'AND GENDER='男')*100/(SELECT COUNT(*)FROM PT_TEACHER WHERE PARTTIMEJOB='专职教师') ))+'%' as '比例' FROM PT_TEACHER a WHERE a.PARTTIMEJOB='专职教师' AND a.GENDER='男' ;
详解:ltrim(Convert(numeric(9,2),Result*100.0/tid))as "概率"
numeric(9,2),字段为字符型,长度为9,有2位小数。
2、DATEDIFF()函数
定义和用法:DATEDIFF() 函数返回两个日期之间的天数
语法: DATEDIFF(datepart,startdate,enddate),其中startdate,enddate是合法的日期表达式。
datepart的参考值:
实战演练:
1.根据日期精确求年龄大小:
FLOOR(datediff(DY,BIRTHDATE,getdate())/365.25)
注:DY为得到的天数,BIRTHDATE为表中日期列,getdate()为当前时间。除以365.25可以得到多少年。
FLOOR()为向下取舍为指定小数位。例如:floor(1.45,0)= 1;floor(1.55,0) = 1
其他函数:round() 遵循四舍五入把原值转化为指定小数位数,
如:round(1.45,0) = 1;round(1.55,0)=2
ceiling()向上舍入为指定小数位数 如:ceiling(1.45,0) = 2;ceiling(1.55,0)=2