How to calculate experience from the date of joining in SQL?

5/5 - (1 vote)

Calculating experience from the date of joining is a common requirement in various database applications. 

In SQL, you can leverage the power of queries and functions to accurately calculate experience based on the date of joining. 

In this article, we will guide you through the steps to calculate experience using SQL.

Before diving into the calculation process, let’s assume we have a table named “employees” with the following structure:

CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(100), date_of_joining DATE );

[WP-Coder id=”51″]

Step 1: Gather the Required Information

To begin, make sure you have the necessary information, such as the date of joining, stored in a column of type DATE in your table. 

Additionally, ensure that the date format is consistent throughout the column.

Note: Use the Experience Calculator to calculate your experience.

Step 2: Calculate Experience in Years

To calculate the experience in years, we can use the DATEDIFF function, which calculates the difference between two dates. 

In this case, we want to find the difference between the date of joining and the current date. Here’s an example query:

SELECT id, name, DATEDIFF(YEAR, date_of_joining, GETDATE()) AS experience_years FROM employees;

In the above query, we use the DATEDIFF function with the YEAR argument to calculate the difference in years. 

GETDATE() is a function that retrieves the current date. 

The result will be a column named “experience_years” that contains the calculated experience in years for each employee.

[WP-Coder id=”75″]

Step 3: Calculate Experience in Months and Days

If you want a more detailed calculation, you can also calculate the experience in months and days. Here’s an example query:

SELECT id, name, DATEDIFF(YEAR, date_of_joining, GETDATE()) AS experience_years, DATEDIFF(MONTH, date_of_joining, GETDATE()) % 12 AS experience_months, DATEDIFF(DAY, date_of_joining, GETDATE()) % 30 AS experience_days FROM employees;

In this query, we use the same DATEDIFF function, but with different arguments. 

We calculate the difference in months and days, respectively, and use the modulus operator (%) to obtain the remaining months and days after subtracting the complete years.

Step 4: Displaying the Experience

By default, the result of the DATEDIFF function will be displayed as an integer value. 

To present the experience in a more user-friendly format, you can format the result using string manipulation functions such as CONCAT or the FORMAT function (if supported by your database). 

[WP-Coder id=”51″]

Here’s an example using the CONCAT function:

SELECT id, name, CONCAT( DATEDIFF(YEAR, date_of_joining, GETDATE()), ‘ years, ‘, DATEDIFF(MONTH, date_of_joining, GETDATE()) % 12, ‘ months, ‘, DATEDIFF(DAY, date_of_joining, GETDATE()) % 30, ‘ days’ ) AS experience FROM employees;

The CONCAT function is used to concatenate the different components (years, months, and days) into a single string, resulting in a column named “experience” that displays the experience in a readable format.


Calculating experience from the date of joining in SQL can be achieved using the DATEDIFF function. 

By leveraging this function along with other SQL constructs, such as GETDATE() for the current date and string manipulation functions for formatting, you can accurately calculate and display the experience of employees stored in your database. 

SQL provides a powerful toolset for data manipulation, making it an ideal choice for various calculations, including experience calculations.