从品牌网站建设到网络营销策划,从策略到执行的一站式服务
计算工龄,我有一个函数,可以帮助你。可以再次基础上去做下改动就好。
创新互联专注于饶平企业网站建设,成都响应式网站建设,商城网站建设。饶平网站建设公司,为饶平等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
调用方式:select fn_GetWorkYear('2011-11-23','2019-10-25')
create function [dbo].[fn_GetWorkYear]
(
@beginday datetime, --开始日期
@endday datetime --结束日期
)
returns int
as
begin
if @beginday @endday
begin
return 0;
end
declare @workyear int
select @workyear = datediff(year, @beginday, @endday)-1--年份差值
if datepart(month, @endday) datepart(month, @beginday)--月份超过
begin
select @workyear = @workyear + 1
end
if datepart(month, @endday) = datepart(month, @beginday)--月份一样
begin
if datepart(day, @endday) = datepart(day, @beginday)--日超过
begin
select @workyear = @workyear + 1
end
end
return @workyear ;
End
GO
你用hibernate的话,可以把每个人的工龄提前算出来啊,在Employee.hbm.xml里:
property name="workTime" formula="(select round(months_between(sysdate,hireDate))/12 from employee where emp_id=id)"
/property
然后Employee里定义一个workTime对象,你查询Employee时,每个人的工龄也算出来了。上面最后那个ID为当前记录的ID,你在配置文件里如果定义的为大写,就用大写的。
用MONTHS_BETWEEN函数可计算两个Date数据之间的月份数:
SELECT MONTHS_BETWEEN
(TO_DATE('02-02-1995','MM-DD-YYYY'),
TO_DATE('01-01-1995','MM-DD-YYYY') ) "Months"
FROM DUAL;
Months
----------
1.03225806
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图