-4

SQL query to find out Display employee name as well as their age and experience in years.

SELECT 
   ENAME,

   CONVERT(VARCHAR(3),DATEDIFF(MONTH, DOJ, GETDATE())/12) +' years '+
   CONVERT(VARCHAR(2),DATEDIFF(MONTH, DOJ, GETDATE()) % 12)+ ' months' 
   AS AgeInYears, 

   CONVERT(VARCHAR(3),DATEDIFF(MONTH, hiredate, GETDATE())/12) +' years '+
   CONVERT(VARCHAR(2),DATEDIFF(MONTH, hiredate, GETDATE()) % 12)+ ' months' 
   AS EXPERIENCEInYears

FROM EMPLOYEE;

enter image description here

squillman
  • 13,363
  • 3
  • 41
  • 60
user123456
  • 143
  • 1
  • 2
  • 13

1 Answers1

1

Your field name was wrong. I change DOJ to DOB.

SELECT 
   ENAME,

   CONVERT(VARCHAR(3),DATEDIFF(MONTH, DOB, GETDATE())/12) +' years '+
   CONVERT(VARCHAR(2),DATEDIFF(MONTH, DOB, GETDATE()) % 12)+ ' months' 
   AS AgeInYears, 

   CONVERT(VARCHAR(3),DATEDIFF(MONTH, hiredate, GETDATE())/12) +' years '+
   CONVERT(VARCHAR(2),DATEDIFF(MONTH, hiredate, GETDATE()) % 12)+ ' months' 
   AS EXPERIENCEInYears

FROM EMPLOYEE;
Eric
  • 242
  • 1
  • 2
  • 7
  • Still i am getting Error 1 queries executed, 0 success, 1 errors, 0 warnings Query: SELECT ENAME, CONVERT(VARCHAR(3),DATEDIFF(MONTH, DOB, GETDATE())/12) +' years '+ CONVERT(VARCHAR(2),DATEDIFF(MONTH, DOB, GETDATE... Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR(3),DATEDIFF(MONTH, DOB, GETDATE())/12) +' years '+ CONVERT(VARCHAR(2)' at line 3 Execution Time : 0 sec Transfer Time : 0 sec Total Time : 0 sec – user123456 May 16 '18 at 19:50