189 8069 5689

oracle里怎么输工龄 oracle查询每个员工的工龄

用oracle的SQL语句计算工人的工龄并用substr查询

计算工龄,我有一个函数,可以帮助你。可以再次基础上去做下改动就好。

创新互联专注于饶平企业网站建设,成都响应式网站建设,商城网站建设。饶平网站建设公司,为饶平等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

调用方式: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 oracle 中如何写计算员工工龄的方法?

你用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,你在配置文件里如果定义的为大写,就用大写的。

Oracle中怎样计算一个员工的工龄(用于人力资源管理系统),关于数据类型之间的转换,日期型和数字型?高

用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


网站标题:oracle里怎么输工龄 oracle查询每个员工的工龄
URL地址:http://cdxtjz.cn/article/hgiips.html

其他资讯