<aside> 📅 Date functions extract, format, and calculate with date/time values in SQL Server.
</aside>
SELECT
OrderID,
'2025-08-20' AS HardCoded,
GETDATE() AS Today
FROM Sales.Orders;
SELECT
OrderID,
YEAR(OrderDate) AS OrderYear,
MONTH(OrderDate) AS OrderMonth,
DAY(OrderDate) AS OrderDay,
DATEPART(quarter, OrderDate) AS Quarter,
DATEPART(week, OrderDate) AS WeekNumber,
DATENAME(month, OrderDate) AS MonthName,
DATENAME(weekday, OrderDate) AS DayName
FROM Sales.Orders;
SELECT
DATETRUNC(year, CreationTime) AS TruncYear,
DATETRUNC(month, CreationTime) AS TruncMonth,
DATETRUNC(day, CreationTime) AS TruncDay
FROM Sales.Orders;
-- Aggregate orders by year
SELECT
DATETRUNC(year, CreationTime) AS OrderYear,
COUNT(*) AS TotalOrders
FROM Sales.Orders
GROUP BY DATETRUNC(year, CreationTime);
SELECT
OrderDate,
EOMONTH(OrderDate) AS EndOfMonth
FROM Sales.Orders;
SELECT
FORMAT(CreationTime, 'MM-dd-yyyy') AS USA_Format,
FORMAT(CreationTime, 'dd-MM-yyyy') AS EURO_Format,
FORMAT(CreationTime, 'dddd') AS FullDayName,
FORMAT(CreationTime, 'MMMM') AS FullMonthName,
FORMAT(CreationTime, 'MMM yy') AS ShortMonthYear
FROM Sales.Orders;
-- CONVERT
SELECT
CONVERT(INT, '123') AS StringToInt,
CONVERT(DATE, '2025-08-20') AS StringToDate,
CONVERT(DATE, CreationTime) AS DateTimeToDate
FROM Sales.Orders;
-- CAST
SELECT
CAST('123' AS INT) AS StringToInt,
CAST(123 AS VARCHAR) AS IntToString,
CAST('2025-08-20' AS DATE) AS StringToDate,
CAST(CreationTime AS DATE) AS DateTimeToDate
FROM Sales.Orders;