SQL Server Date Format Converter: CONVERT Style Codes & FORMAT()
Pick a datetime and see exactly what SQL Server returns for every CONVERT date and time style code: 0/100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 120, 121, 126, 127 and the rest, each with the correct varchar length and a copy-ready SELECT CONVERT statement. Outputs follow the Microsoft documentation, including the space-padded day and hour in style 100, the colon before milliseconds in 109/113/114, two-digit years in the non-century styles and datetime's 1/300-second rounding. A second panel previews .NET FORMAT() patterns (yyyy, MM, dd, HH, hh, mm, ss, fff, tt, MMM, dddd) in en-US, and a third tells you which style code parses a date string with CONVERT or TRY_CONVERT. Everything runs in your browser.
CONVERT style codes
| Style | Name | Pattern | Output | SQL |
|---|---|---|---|---|
| 0 | Default (datetime, smalldatetime) | mon dd yyyy hh:miAM (or PM) | Mar 5 2026 2:07PM | SELECT CONVERT(varchar(19), @d, 0); |
| 100 | Default (datetime, smalldatetime) | mon dd yyyy hh:miAM (or PM) | Mar 5 2026 2:07PM | SELECT CONVERT(varchar(19), @d, 100); |
| 1 | U.S. | mm/dd/yy | 03/05/26 | SELECT CONVERT(varchar(8), @d, 1); |
| 101 | U.S. | mm/dd/yyyy | 03/05/2026 | SELECT CONVERT(varchar(10), @d, 101); |
| 2 | ANSI | yy.mm.dd | 26.03.05 | SELECT CONVERT(varchar(8), @d, 2); |
| 102 | ANSI | yyyy.mm.dd | 2026.03.05 | SELECT CONVERT(varchar(10), @d, 102); |
| 3 | British/French | dd/mm/yy | 05/03/26 | SELECT CONVERT(varchar(8), @d, 3); |
| 103 | British/French | dd/mm/yyyy | 05/03/2026 | SELECT CONVERT(varchar(10), @d, 103); |
| 4 | German | dd.mm.yy | 05.03.26 | SELECT CONVERT(varchar(8), @d, 4); |
| 104 | German | dd.mm.yyyy | 05.03.2026 | SELECT CONVERT(varchar(10), @d, 104); |
| 5 | Italian | dd-mm-yy | 05-03-26 | SELECT CONVERT(varchar(8), @d, 5); |
| 105 | Italian | dd-mm-yyyy | 05-03-2026 | SELECT CONVERT(varchar(10), @d, 105); |
| 6 | Day month year | dd mon yy | 05 Mar 26 | SELECT CONVERT(varchar(9), @d, 6); |
| 106 | Day month year | dd mon yyyy | 05 Mar 2026 | SELECT CONVERT(varchar(11), @d, 106); |
| 7 | Month day, year | Mon dd, yy | Mar 05, 26 | SELECT CONVERT(varchar(10), @d, 7); |
| 107 | Month day, year | Mon dd, yyyy | Mar 05, 2026 | SELECT CONVERT(varchar(12), @d, 107); |
| 8 | Time (24-hour) | hh:mi:ss | 14:07:09 | SELECT CONVERT(varchar(8), @d, 8); |
| 108 | Time (24-hour) | hh:mi:ss | 14:07:09 | SELECT CONVERT(varchar(8), @d, 108); |
| 24 | Time (24-hour) | hh:mi:ss | 14:07:09 | SELECT CONVERT(varchar(8), @d, 24); |
| 9 | Default + milliseconds | mon dd yyyy hh:mi:ss:mmmAM (or PM) | Mar 5 2026 2:07:09:123PM | SELECT CONVERT(varchar(26), @d, 9); |
| 109 | Default + milliseconds | mon dd yyyy hh:mi:ss:mmmAM (or PM) | Mar 5 2026 2:07:09:123PM | SELECT CONVERT(varchar(26), @d, 109); |
| 10 | USA | mm-dd-yy | 03-05-26 | SELECT CONVERT(varchar(8), @d, 10); |
| 110 | USA | mm-dd-yyyy | 03-05-2026 | SELECT CONVERT(varchar(10), @d, 110); |
| 11 | Japan | yy/mm/dd | 26/03/05 | SELECT CONVERT(varchar(8), @d, 11); |
| 111 | Japan | yyyy/mm/dd | 2026/03/05 | SELECT CONVERT(varchar(10), @d, 111); |
| 12 | ISO basic | yymmdd | 260305 | SELECT CONVERT(varchar(6), @d, 12); |
| 112 | ISO basic | yyyymmdd | 20260305 | SELECT CONVERT(varchar(8), @d, 112); |
| 13 | Europe default + milliseconds | dd mon yyyy hh:mi:ss:mmm (24-hour) | 05 Mar 2026 14:07:09:123 | SELECT CONVERT(varchar(24), @d, 13); |
| 113 | Europe default + milliseconds | dd mon yyyy hh:mi:ss:mmm (24-hour) | 05 Mar 2026 14:07:09:123 | SELECT CONVERT(varchar(24), @d, 113); |
| 14 | Time with milliseconds (24-hour) | hh:mi:ss:mmm | 14:07:09:123 | SELECT CONVERT(varchar(12), @d, 14); |
| 114 | Time with milliseconds (24-hour) | hh:mi:ss:mmm | 14:07:09:123 | SELECT CONVERT(varchar(12), @d, 114); |
| 20 | ODBC canonical | yyyy-mm-dd hh:mi:ss (24-hour) | 2026-03-05 14:07:09 | SELECT CONVERT(varchar(19), @d, 20); |
| 120 | ODBC canonical | yyyy-mm-dd hh:mi:ss (24-hour) | 2026-03-05 14:07:09 | SELECT CONVERT(varchar(19), @d, 120); |
| 21 | ODBC canonical with milliseconds | yyyy-mm-dd hh:mi:ss.mmm (24-hour) | 2026-03-05 14:07:09.123 Default style for time, date, datetime2 and datetimeoffset; datetime2 prints 7 fractional digits. | SELECT CONVERT(varchar(23), @d, 21); |
| 25 | ODBC canonical with milliseconds | yyyy-mm-dd hh:mi:ss.mmm (24-hour) | 2026-03-05 14:07:09.123 Default style for time, date, datetime2 and datetimeoffset; datetime2 prints 7 fractional digits. | SELECT CONVERT(varchar(23), @d, 25); |
| 121 | ODBC canonical with milliseconds | yyyy-mm-dd hh:mi:ss.mmm (24-hour) | 2026-03-05 14:07:09.123 Default style for time, date, datetime2 and datetimeoffset; datetime2 prints 7 fractional digits. | SELECT CONVERT(varchar(23), @d, 121); |
| 22 | U.S. with time | mm/dd/yy hh:mi:ss AM (or PM) | 03/05/26 2:07:09 PM | SELECT CONVERT(varchar(20), @d, 22); |
| 23 | ISO 8601 date | yyyy-mm-dd | 2026-03-05 | SELECT CONVERT(varchar(10), @d, 23); |
| 126 | ISO 8601 | yyyy-mm-ddThh:mi:ss.mmm (no spaces) | 2026-03-05T14:07:09.123 For datetime, the .mmm part is omitted when milliseconds are 0. | SELECT CONVERT(varchar(23), @d, 126); |
| 127 | ISO 8601 with time zone Z | yyyy-mm-ddThh:mi:ss.mmmZ (no spaces) | 2026-03-05T14:07:09.123 For datetime/datetime2 the text matches style 126. The Z (UTC) suffix appears only for datetimeoffset input, which is shifted to UTC first (use a longer varchar). | SELECT CONVERT(varchar(23), @d, 127); |
| 130 | Hijri | dd mon yyyy hh:mi:ss:mmmAM | Not computed (Hijri) Output uses the Hijri (Islamic) calendar, which this tool does not compute. Run the query in SQL Server to see it. | SELECT CONVERT(nvarchar(32), @d, 130); |
| 131 | Hijri | dd/mm/yyyy hh:mi:ss:mmmAM | Not computed (Hijri) Output uses the Hijri (Islamic) calendar, which this tool does not compute. Run the query in SQL Server to see it. | SELECT CONVERT(varchar(25), @d, 131); |
FORMAT() pattern builder (en-US)
String to date: which style parses it?
| Style | Name | Parsed as | Note |
|---|---|---|---|
| 101 | U.S. | 2026-05-03 14:30:00.000 | Month first (U.S. order). |
| 103 | British/French | 2026-03-05 14:30:00.000 | Day first (European order). |
Do more than sql server date format converter: convert style codes & format() — meet Chat2DB
Chat2DB is an AI-powered SQL client for Windows, macOS and Linux. Write SQL in natural language, format and optimize queries automatically, and manage MySQL, PostgreSQL, Oracle and 20+ other databases in one workspace.
How to use
- Enter a datetime (YYYY-MM-DD HH:MM:SS.mmm; it defaults to now) and search the style table by code, name or output, e.g. 103, ISO or dd/mm.
- Copy the SELECT CONVERT(varchar(n), @d, style) line for the output you need, or build a custom FORMAT() pattern with the token buttons and live preview.
- Paste a date string into the string-to-date panel to see which style numbers parse it and copy the CONVERT / TRY_CONVERT statements.
Frequently asked questions
What are the most common SQL Server CONVERT date style codes?
101 gives mm/dd/yyyy (U.S.), 103 gives dd/mm/yyyy (British/French), 104 gives dd.mm.yyyy (German), 105 gives dd-mm-yyyy, 112 gives yyyymmdd, 120 gives yyyy-mm-dd hh:mi:ss, 121 adds .mmm milliseconds, 23 gives yyyy-mm-dd and 126 gives ISO 8601 yyyy-mm-ddThh:mi:ss.mmm. Subtract 100 (1, 3, 4, 5, 10, 11, 12) to get a two-digit year. Styles 0/100 and 9/109 print the month name and a 12-hour clock, and 108 prints only hh:mi:ss.
Should I use CONVERT or FORMAT to format dates in SQL Server?
Use CONVERT when one of its style codes matches the output you need. It is a native function and is fast on millions of rows. FORMAT (SQL Server 2012+) accepts any .NET pattern such as 'dddd, MMMM d, yyyy' and a culture, but it calls the CLR once per row and is often 10 to 50 times slower, so keep it for small result sets or final display. Watch the case: MM is month and mm is minutes, HH is 24-hour and hh is 12-hour. An invalid pattern makes FORMAT return NULL, not an error.
How do I convert a string like '05/03/2026' to a date without errors?
Always pass a style so the result does not depend on SET DATEFORMAT or the login language: CONVERT(datetime2, '05/03/2026', 103) reads it as 5 March, while style 101 reads it as May 3. Use TRY_CONVERT to get NULL instead of error 241 for bad rows, and prefer unambiguous ISO formats (yyyymmdd or yyyy-mm-ddThh:mi:ss) when you control the input. Chat2DB, a free AI-powered SQL client for SQL Server, lets you run these conversions and inspect the results: download it at https://chat2db.ai/download or use the web version at https://app.chat2db.ai.
