SQL Server Datetime Formats: A Comprehensive Guide

Introduction
Working with date and time values is a routine part of database development. Whether you’re filtering rows, creating reports, or presenting timestamps, consistent formatting helps ensure clarity. This article explains how to format and manipulate dates in SQL Server using built-in tools and functions.
Understanding how to use SQL Server’s datetime functions improves report accuracy, ensures correct regional formatting, and simplifies downstream application logic. In the following sections, we’ll explore the core data types, formatting options, and best practices for datetime in SQL Server.
Data Compliance Overview | Regulatory Frameworks
Handling Time Zones and Quick Style-Code Cheat Sheet
Instant Conversion with AT TIME ZONE
From SQL Server 2016 onward, AT TIME ZONE simplifies converting UTC
timestamps into local times (and vice versa) without hard-coding offsets or
wrestling with daylight-saving changes.
-- Store once in UTC, present it locally
DECLARE @utc DATETIME2 = SYSUTCDATETIME();
SELECT
@utc AS StoredUTC,
@utc AT TIME ZONE 'UTC'
AT TIME ZONE 'Central European Standard Time' AS BerlinTime,
@utc AT TIME ZONE 'UTC'
AT TIME ZONE 'Pacific Standard Time' AS SeattleTime;
Most-Used CONVERT Style Codes
| Style | Example Output | Typical Use |
|---|---|---|
| 101 | 07/15/2025 | US MM/DD/YYYY |
| 103 | 15/07/2025 | EU DD/MM/YYYY |
| 104 | 15.07.2025 | DE DD.MM.YYYY |
| 120 | 2025-07-15 13:25:42 | ISO 24-hour |
| 121 | 2025-07-15 13:25:42.347 | ISO ms precision |
Stick to ISO styles (120/121) for APIs, reserve locale-specific formats for presentation layers, and always store in UTC when rows travel across regions.
What Is SQL Server?
Microsoft SQL Server is a relational database platform used widely across enterprise environments. It supports transactional and analytical workloads, offering strong capabilities for managing structured data—including built-in tools for datetime storage, formatting, and arithmetic.
SQL Server Date and Time Data Types
SQL Server offers several built-in types for storing and working with datetime values. Some are legacy-compatible, while others offer modern precision and timezone support. Choosing the right type depends on the level of accuracy and storage efficiency you need.
| Type | Category | Use Cases |
|---|---|---|
| datetime | Legacy | General storage with millisecond precision |
| smalldatetime | Legacy | Compact storage, accurate to the minute |
| date | Modern | Stores only calendar date (no time component) |
| time | Modern | Stores time only, ideal for scheduling |
| datetime2 | Modern | High-precision date and time with larger range |
| datetimeoffset | Modern | Includes time zone awareness |
Default Output Format
By default, a query like SELECT GETDATE(); returns a result in the format 'YYYY-MM-DD HH:MI:SS.mmm'. For example:
2024-07-15 13:25:42.347
To customize the format, use the CONVERT() or FORMAT() functions with style codes.
Formatting Dates in SQL Server
Transforming datetime values into readable strings is essential for reports or UI output. The CONVERT() function accepts style codes for various region-specific formats.
DECLARE @date DATETIME = GETDATE(); SELECT CONVERT(VARCHAR, @date, 101) AS US_Format, -- MM/DD/YYYY CONVERT(VARCHAR, @date, 103) AS UK_Format, -- DD/MM/YYYY CONVERT(VARCHAR, @date, 120) AS ISO_Format; -- YYYY-MM-DD HH:MI:SS
Working with Strings and Dates
When input is received as a string, you can convert it using CONVERT() or CAST() functions. This helps with integration pipelines and dynamic SQL.
DECLARE @str VARCHAR(20) = '2024-07-12 14:30:00'; SELECT CONVERT(DATETIME, @str) AS ConvertedDate;
Whenever precision matters, use datetime2 or datetimeoffset for expanded range and time zone features.
Date Arithmetic
Adding or subtracting time intervals can be handled using DATEADD(). This makes it easy to calculate expiration dates, due times, or reporting windows.
DECLARE @start DATETIME = '2024-07-12'; SELECT DATEADD(DAY, 5, @start) AS PlusFiveDays, DATEADD(MONTH, 1, @start) AS NextMonth;
Extracting Date Parts
Need a specific part of a datetime? SQL Server offers direct functions to extract year, month, weekday, and more.
SELECT YEAR(GETDATE()) AS Year, MONTH(GETDATE()) AS Month, DAY(GETDATE()) AS Day, DATEPART(WEEKDAY, GETDATE()) AS Weekday;
Best Practices for SQL Server Datetime
- Use the smallest datetime type that meets your needs. For example, use
dateif time is irrelevant. - Stick to ISO-formatted strings when importing/exporting to avoid ambiguity.
- Refer to official Microsoft style codes for formatting consistency.
- Be aware of server locale and language settings—they can alter input parsing and day-month order.
Handling Time Zones
Time zone awareness is critical for global applications. SQL Server’s datetimeoffset helps ensure consistency when storing UTC and converting to local zones.
DECLARE @utc DATETIMEOFFSET = '2024-07-12 12:00:00 +00:00'; DECLARE @cet DATETIMEOFFSET = '2024-07-12 14:00:00 +02:00'; SELECT DATEDIFF(HOUR, @utc, @cet) AS HourDifference;
Summary and Conclusion
Managing and formatting datetime values in SQL Server doesn’t need to be complex. By understanding the right data types and applying conversion functions strategically, you can ensure your applications present time-based information clearly and consistently.
Whether you’re building reports, parsing strings, or implementing time-aware business logic, mastering SQL Server datetime gives you precise control over temporal data. Use built-in functions, follow formatting standards, and leverage timezone support to reduce bugs and improve user trust.
