SQL DATE_FORMAT: Format Dates as Strings (All Databases)
Format dates and timestamps as readable strings in SQL. Covers DATE_FORMAT (MySQL), TO_CHAR (PostgreSQL/Oracle), FORMAT (SQL Server).
Overview
Every database formats dates differently. This guide shows how to convert dates to any string format you need.
MySQL
-- DATE_FORMAT(date, format):
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); -- '2026-03-12'
SELECT DATE_FORMAT(NOW(), '%M %d, %Y'); -- 'March 12, 2026'
SELECT DATE_FORMAT(NOW(), '%d/%m/%Y'); -- '12/03/2026'
SELECT DATE_FORMAT(NOW(), '%H:%i:%s'); -- '14:30:00'
SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y'); -- 'Thursday, March 12, 2026'
-- Format codes: %Y=year, %m=month, %d=day
-- %H=hour24, %h=hour12, %i=minute, %s=second
-- %M=month name, %W=weekday name, %b=abbreviated month
PostgreSQL
-- TO_CHAR(date, format):
SELECT TO_CHAR(NOW(), 'YYYY-MM-DD'); -- '2026-03-12'
SELECT TO_CHAR(NOW(), 'Month DD, YYYY'); -- 'March 12, 2026'
SELECT TO_CHAR(NOW(), 'FMMonth DD, YYYY'); -- 'March 12, 2026'
SELECT TO_CHAR(NOW(), 'DD/MM/YYYY'); -- '12/03/2026'
SELECT TO_CHAR(NOW(), 'HH24:MI:SS'); -- '14:30:00'
SELECT TO_CHAR(NOW(), 'Day, FMMonth DD, YYYY'); -- 'Thursday, March 12, 2026'
-- FM prefix removes padding spaces
SQL Server
-- FORMAT (SQL Server 2012+):
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd'); -- '2026-03-12'
SELECT FORMAT(GETDATE(), 'MMMM dd, yyyy'); -- 'March 12, 2026'
SELECT FORMAT(GETDATE(), 'dd/MM/yyyy'); -- '12/03/2026'
SELECT FORMAT(GETDATE(), 'HH:mm:ss'); -- '14:30:00'
-- CONVERT with style codes (faster):
SELECT CONVERT(VARCHAR, GETDATE(), 23); -- '2026-03-12' (ISO)
SELECT CONVERT(VARCHAR, GETDATE(), 101); -- '03/12/2026' (US)
SELECT CONVERT(VARCHAR, GETDATE(), 103); -- '12/03/2026' (UK)
Oracle
-- TO_CHAR(date, format):
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL; -- '2026-03-12'
SELECT TO_CHAR(SYSDATE, 'Month DD, YYYY') FROM DUAL; -- 'March 12, 2026'
SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYY') FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'Day, Month DD, YYYY') FROM DUAL;
Skip the Syntax Lookup
Instead of memorizing DATE_FORMAT / FORMAT / TO_CHAR syntax for each database, describe what you need in plain English and let AI2SQL generate the correct query.
No credit card required
Frequently Asked Questions
How do I format a date in SQL?
MySQL: DATE_FORMAT(date, format). PostgreSQL/Oracle: TO_CHAR(date, format). SQL Server: FORMAT(date, format) or CONVERT with style codes.
What are the date format codes?
They differ by database. MySQL uses % prefixes (%Y, %m, %d). PostgreSQL/Oracle use YYYY, MM, DD. SQL Server FORMAT uses .NET format strings (yyyy, MM, dd).
Can AI2SQL format dates for me?
Yes. Say 'show order dates in DD/MM/YYYY format' and AI2SQL generates the correct date formatting for your database.