DATEFROMPARTS SQL function


1. Usage of DATEFROMPARTS which shows various way to display Employee Hire Date.

SQL Server Query 1

            
SELECT  
EmployeeID, FirstName, LastName, HireDate, -- Original HireDate for comparison
DATEFROMPARTS(
YEAR(HireDate), -- Extract year from HireDate
MONTH(HireDate), -- Extract month from HireDate
DAY(HireDate) -- Extract day from HireDate
) AS ReconstructedHireDate,
-- Example: Construct a date 5 years after the original HireDate
DATEFROMPARTS(
YEAR(HireDate) + 5,
MONTH(HireDate),
DAY(HireDate)
) AS FiveYearsLater
FROM Employees
ORDER BY EmployeeID;

Create SQL query with SqlQueryBuilder 1

            
var (sql1, parameters1) = new SqlQueryBuilder()  
.Select()
.Columns("EmployeeID", "FirstName", "LastName", "HireDate")
.Column(new DATEFROMPARTS(new YEAR(new Column("HireDate")), new MONTH(new Column("HireDate")), new DAY(new Column("HireDate")))
, "ReconstructedHireDate")
.Column(new DATEFROMPARTS(new YEAR(new Column("HireDate")).AddArithmatic(new Arithmatic().Add(5)), new MONTH(new Column("HireDate")),
new DAY(new Column("HireDate")))
, "FiveYearsLater")
.From("Employees")
.OrderBy(new OrderBy().Set(new Column("EmployeeID")))
.Build();

Query build by SqlQueryBuilder 1

            
SELECT EmployeeID,
       FirstName,
       LastName,
       HireDate,
       DATEFROMPARTS(YEAR(HireDate), MONTH(HireDate), DAY(HireDate)) AS ReconstructedHireDate,
       DATEFROMPARTS(YEAR(HireDate) + @pMAIN_2507200156432764490, MONTH(HireDate), DAY(HireDate)) AS FiveYearsLater
FROM Employees
ORDER BY EmployeeID ASC;


            
        

Parameters (If used)

Name Value
@pMAIN_2507200156432764490 5

Query Results 1:

  EmployeeID FirstName LastName HireDate ReconstructedHireDate FiveYearsLater
1 1 Nancy Davolio 5/1/1992 12:00:00 AM 5/1/1992 12:00:00 AM 5/1/1997 12:00:00 AM
2 2 Andrew Fuller 8/14/1992 12:00:00 AM 8/14/1992 12:00:00 AM 8/14/1997 12:00:00 AM
3 3 Janet Leverling 4/1/1992 12:00:00 AM 4/1/1992 12:00:00 AM 4/1/1997 12:00:00 AM
4 4 Margaret Peacock 5/3/1993 12:00:00 AM 5/3/1993 12:00:00 AM 5/3/1998 12:00:00 AM
5 5 Steven Buchanan 10/17/1993 12:00:00 AM 10/17/1993 12:00:00 AM 10/17/1998 12:00:00 AM
6 6 Michael Suyama 10/17/1993 12:00:00 AM 10/17/1993 12:00:00 AM 10/17/1998 12:00:00 AM
7 7 Robert King 1/2/1994 12:00:00 AM 1/2/1994 12:00:00 AM 1/2/1999 12:00:00 AM
8 8 Laura Callahan 3/5/1994 12:00:00 AM 3/5/1994 12:00:00 AM 3/5/1999 12:00:00 AM
9 9 Anne Dodsworth 11/15/1994 12:00:00 AM 11/15/1994 12:00:00 AM 11/15/1999 12:00:00 AM