Lesson 41 +10 XP

Date Functions

Date Functions

SQL provides functions for working with dates and times.

Today's date and time

SELECT NOW();          -- current date and time (MySQL)
SELECT GETDATE();      -- current date and time (SQL Server)
SELECT CURDATE();      -- date only (MySQL)

Extract parts of a date

SELECT EXTRACT(YEAR FROM OrderDate) FROM Orders;   -- 2024
SELECT MONTH(OrderDate) FROM Orders;               -- 1..12 (MySQL)
SELECT YEAR(OrderDate) FROM Orders;                -- 2024

Add / subtract time

-- MySQL
SELECT DATE_ADD(OrderDate, INTERVAL 1 DAY) FROM Orders;
SELECT DATE_SUB(OrderDate, INTERVAL 2 MONTH) FROM Orders;

-- SQL Server
SELECT DATEADD(day, 1, OrderDate) FROM Orders;

Compare dates

Dates compare like strings in WHERE:

SELECT * FROM Orders
WHERE OrderDate > '2024-06-01';

Format a date

SELECT DATE_FORMAT(OrderDate, '%Y-%m-%d') FROM Orders;   -- MySQL

Note

The exact function names differ by database (NOW vs GETDATE, DATE_ADD vs DATEADD). Always check your database's docs.

TL;DR

  • NOW / GETDATE return the current date and time.
  • YEAR / MONTH / EXTRACT pull parts out of dates.
  • DATE_ADD / DATEADD add time to a date.
  • Dates can be compared with > and < in WHERE.