Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 483
  • Last Modified:

How to Compare DateName(YEAR, TABLENAME) to NOW YEAR.......

DATABASE NAME:
HR_ASSOCIATES
TABLE NAME :
HireDate
COMMAND:
 (DATENAME(YEAR, HireDate)

Hello,
 im trying to build a report out of the HR DATABASE to allow our Users to Pull a Report of Associates Anniversary's and have it output the number of years the associate has been there.
any help would be greatly appreciated. the report is already working for the user to select the month and it will only show the people with anniversarys that month but I would love it to show the number of years as well........for example....if Table data Shows 2002, and Todays Year is 2008 how can i get SQL to Show me 6 YEARS?

Thanks,
PhatAdam
Information Systems
0
PhatAdam
Asked:
PhatAdam
  • 2
  • 2
  • 2
  • +2
1 Solution
 
brad2575Commented:
You can do it like this:
Select Year(GetDate()) - Year(YearOfHire)  
0
 
i2mentalCommented:
You could use the DATEDIFF function.

SELECT DATEDIFF (yy,'2/1/2002','6/12/2008')

returns 6
0
 
PhatAdamAuthor Commented:
right that would work....except the actual date we are starting with is in the table so it could be 2001 or 1999....the origianl date starts as whatever is in the SQL TABLE
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
brad2575Commented:
You just add mine or i2mental's code examples to your existing select query.  You would just change the dates we used with dates from the tables.
0
 
Jerryuk007Commented:
declare @yearjoin datetime
Set @yearjoin='2002/06/01' -- This can be extracted from your database
select datediff(yy,@yearjoin,getdate())as 'Number of year in the firm'

If you wish, the select above can be replaced with the one below (replace "hiredate_field" with the correct field name)

select datediff(yy,hiredate_field,getdate())as 'Number of year in the firm' from HR_ASSOCIATES.dbo.HireDate

Jerry
0
 
Jerryuk007Commented:
Or you can do something like:

declare @yearjoin datetime
Set @yearjoin='2002/05/10' -- This can be extracted from your database
select rtrim(convert(char,datediff(yy,@yearjoin,getdate())))+' years and '+
rtrim(convert(char,datediff(mm,@yearjoin,getdate())-12*(convert(int,datediff(mm,@yearjoin,getdate()))/12)))+' Months' as 'Employment Length'

;-)

Jerry
0
 
PhatAdamAuthor Commented:
right but i cannot use SQL CODE...this is in reporting it has to be a Function Expression, doesnt it?
0
 
jgvCommented:
If you have the option to modify the sql statement that pulls the report data from the database then use one of the above suggestions. If you don't have that option then you can use this expression in the report. Just replace "TheHireDateField" with the proper dataset field name.
=DateDiff("yyyy",Fields!TheHireDateField.Value, Date.Today)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
  • 2
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now