Convert (Format) DateTime in SQL Server with Examples

  By : Suresh Dasari
  Posted On : 22-Mar-2023

Here, we will learn how to convert SQL DateTime data type values from one format to another like mm/dd/yyyy, yyyy-mm-dd, dd-mm-yy hh-mm-ss, yyyymmdd, etc. using CONVERT and FORMAT functions with examples.

 

While working with the applications we will get a requirement to change the default datetime data type values to the different formats based on the requirement of the application.

 

The default datetime data type value will be as shown below.

 

SELECT GETDATE()
------------------------
2023-03-21 06:41:12.050

In many cases, we don’t need to return the complete date and time instead we require only the date/time or both date and time in different formats. 

Convert Function in SQL Server

To perform different date and time conversions in SQL server, we have a function called CONVERT by using that we can convert the given datetime values to different date and time formats based on our requirements.

 

Following is the syntax of the CONVERT function in the SQL server.

 

CONVERT(Target_DataType, Expression, FormatCode)

 The Convert function will accept three parameters, which are

 

  • Target_DataType: It defines the data type that you want to convert.
  • Expression: It defines the input expression that you want to convert
  • FormatCode: Optional format code to specify the format of the input expression.

Here is an example of how to convert a datetime value to a different format using the CONVERT function in the SQL server.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 120)
-------------------------------------------
2023-03-21 07:52:59

In this SQL CONVERT function example, we are using GETDATE() function to get the current date and time, and then convert it to varchar data type using the format code 120, which represents the format “yyyy-mm-dd hh:mi:ss”.

 

In SQL, the GETDATE() function will return the current date and time of the server where the SQL Server is running. In case, if you need a universal (UTC) date and time, you need to use GETUTCDATE().

 

The GETUTCDATE() function will return the current date and time in Greenwich Mean Time (GMT) and it is useful when you want to store/compare dates and times across different time zones.

 

Following is the example of using both the GETDATE() and GETUTCDATE() functions in SQL.

 

SELECT GETDATE() AS CurrentDateTime, GETUTCDATE() AS CurrentUTCDateTime

The above SQL query will return the result as shown below.

 

CurrentDateTimeCurrentUTCDateTime
2023-03-21 22:12:24.437 2023-03-21 16:42:24.437

Now we will learn some of the commonly used date and time conversions in sql server with examples.

 

SQL Convert DateTime to yyyymmdd Format

 

By using format code 112, we can convert the given datetime to yyyymmdd format using the CONVERT function in sql server.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 112)
------------------------------------------
20230321

SQL Convert DateTime to dd/mm/yyyy Format

 

By using format code 103, we can convert the given datetime to dd/mm/yyyy format.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 103)
------------------------------------------
21/03/2023

SQL DateTime in dd-mm-yyyy hh:mm:ss:nnn Format

 

By using format code 29, we can convert the given datetime to dd-mm-yyyy hh:mm:ss:nnn format.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 29)
------------------------------------------
22-03-2023 10:02:14.567

SQL DateTime in yyyy-mm-dd Format

 

By using format code 31, we can convert the given datetime to yyyy-mm-dd format.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 31)
------------------------------------------
2023-22-03

SQL DateTime in mm/dd/yyyy Format

 

By using format code 101, we can convert the given datetime to mm/dd/yyyy format.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 101)
------------------------------------------
03/22/2023

SQL DateTime in yyyymmdd Format

 

By using format code 112, we can convert the given datetime to yyyymmdd format.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 112)
------------------------------------------
20230322

SQL Datetime in Mon dd yyyy hh:mm AM/PM Format

 

By using format code 0, we can convert the given datetime to mon dd yyyy hh:mm AM/PM format.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 0)
------------------------------------------
Mar 22 2023 10:09AM

SQL DateTime in hh:mm:ss Format

 

By using format code 108, we can convert the given datetime to hh:mm:ss format.

 

SELECT CONVERT(VARCHAR(30), GETDATE(), 108)
------------------------------------------
10:12:35

Like this, we have different format codes available to format the datetime data type value to the required format. The following table lists all the available format codes in SQL Server to convert or format the given datetime value based on our requirements.

 

FormatQueryExample
mon dd yyyy hh:mm AM/PM SELECT CONVERT(VARCHAR, GETDATE(), 0) Mar 22 2023 10:46AM
mm/dd/yy SELECT CONVERT(VARCHAR, GETDATE(), 1) 03/22/23
yy.mm.dd SELECT CONVERT(VARCHAR, GETDATE(), 2) 23.03.22
dd/mm/yy SELECT CONVERT(VARCHAR, GETDATE(), 3) 22/03/23
dd.mm.yy SELECT CONVERT(VARCHAR, GETDATE(), 4) 22.03.23
dd-mm-yy SELECT CONVERT(VARCHAR, GETDATE(), 5) 22-03-23
dd-mon-yy SELECT CONVERT(VARCHAR, GETDATE(), 6) 22 Mar 23
mon dd, yy SELECT CONVERT(VARCHAR, GETDATE(), 7) Mar 22, 23
hh:mm:ss SELECT CONVERT(VARCHAR, GETDATE(), 8) 10:46:21
mon dd yyyy hh:mm:ss:nnn AM/PM SELECT CONVERT(VARCHAR, GETDATE(), 9) Mar 22 2023 10:46:21:633AM
mm-dd-yy SELECT CONVERT(VARCHAR, GETDATE(), 10) 03-22-23
yy/mm/dd SELECT CONVERT(VARCHAR, GETDATE(), 11) 23/03/22
yymmdd SELECT CONVERT(VARCHAR, GETDATE(), 12) 230322
dd mon yyyy hh:mm:ss:nnn AM/PM SELECT CONVERT(VARCHAR, GETDATE(), 13) 22 Mar 2023 10:46:21:633
hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 14) 10:46:21:633
yyyy-mm-dd hh:mm:ss SELECT CONVERT(VARCHAR, GETDATE(), 20) 2023-03-22 10:46:21
yyyy-mm-dd hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 21) 2023-03-22 10:46:21.633
mm/dd/yy hh:mm:ss AM/PM SELECT CONVERT(VARCHAR, GETDATE(), 22) 03/22/23 10:46:21 AM
yyyy-mm-dd SELECT CONVERT(VARCHAR, GETDATE(), 23) 2023-03-22
hh:mm:ss SELECT CONVERT(VARCHAR, GETDATE(), 24) 10:46:21
yyyy-mm-dd hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 25) 2023-03-22 10:46:21.633
yyyy-dd-mm hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 26) 2023-22-03 10:46:21.633
mm-dd-yyyy hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 27) 03-22-2023 10:46:21.633
mm-yyyy-dd hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 28) 03-2023-22 10:46:21.633
dd-mm-yyyy hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 29) 22-03-2023 10:46:21.633
dd-yyyy-mm hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 30) 22-2023-03 10:46:21.633
yyyy-dd-mm SELECT CONVERT(VARCHAR, GETDATE(), 31) 2023-22-03
mm-dd-yyyy SELECT CONVERT(VARCHAR, GETDATE(), 32) 03-22-2023
mm-yyyy-dd SELECT CONVERT(VARCHAR, GETDATE(), 33) 03-2023-22
dd-mm-yyyy SELECT CONVERT(VARCHAR, GETDATE(), 34) 22-03-2023
dd-yyyy-mm SELECT CONVERT(VARCHAR, GETDATE(), 35) 22-2023-03
mon dd yyyy hh:mm AM/PM SELECT CONVERT(VARCHAR, GETDATE(), 100) Mar 22 2023 10:46AM
mm/dd/yyyy SELECT CONVERT(VARCHAR, GETDATE(), 101) 03/22/2023
yyyy.mm.dd SELECT CONVERT(VARCHAR, GETDATE(), 102) 2023.03.22
dd/mm/yyyy SELECT CONVERT(VARCHAR, GETDATE(), 103) 22/03/2023
dd.mm.yyyy SELECT CONVERT(VARCHAR, GETDATE(), 104) 22.03.2023
dd-mm-yyyy SELECT CONVERT(VARCHAR, GETDATE(), 105) 22-03-2023
dd Mon yyyy SELECT CONVERT(VARCHAR, GETDATE(), 106) 22 Mar 2023
mon dd, yyyy SELECT CONVERT(VARCHAR, GETDATE(), 107) Mar 22, 2023
hh:mm:ss SELECT CONVERT(VARCHAR, GETDATE(), 108) 10:46:21
mon dd yyyy hh:mm:ss:nnn AM/PM SELECT CONVERT(VARCHAR, GETDATE(), 109) Mar 22 2023 10:46:21:633AM
mm-dd-yyyy SELECT CONVERT(VARCHAR, GETDATE(), 110) 03-22-2023
yyyy/mm/dd SELECT CONVERT(VARCHAR, GETDATE(), 111) 2023/03/22
yyyymmdd SELECT CONVERT(VARCHAR, GETDATE(), 112) 20230322
dd mon yyyy hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 113) 22 Mar 2023 10:46:21:633
hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 114) 10:46:21:633
hhmmss SELECT CONVERT(VARCHAR, GETDATE(), 115) 104621
yyyy-mm-dd hh:mm:ss SELECT CONVERT(VARCHAR, GETDATE(), 120) 2023-03-22 10:46:21
yyyy-mm-dd hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 121) 2023-03-22 10:46:21.633
yyyy-mm-dd T hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 126) 2023-03-22T10:46:21.633
yyyy-mm-dd T hh:mm:ss:nnn SELECT CONVERT(VARCHAR, GETDATE(), 127) 2023-03-22T10:46:21.633
dd mmm yyyy hh:mi:ss:nnn AM/PM SELECT CONVERT(VARCHAR, GETDATE(), 130) 1 رمضان 1444 10:46:21:633AM
dd mmm yyyy hh:mi:ss:nnn AM/PM SELECT CONVERT(VARCHAR, GETDATE(), 131) 1/09/1444 10:46:21:633AM

If the required datetime format value is not found in the provided format codes, you can customize the datetime value by using the FORMAT function in sql server.

Format Function in SQL Server

In SQL, the FORMAT function is also useful to convert the given string/number/datetime value to the specified format.

 

Following is the syntax of defining the FORMAT function in SQL.

 

FORMAT(value, customformat, culture)

The FORMAT function will accept two parameters, which are

 

  • value: The value that you want to format.
  • customformat: The format that you want to apply to the value.
  • culture: The optional culture option is useful to perform regional formatting. 

Following is the example of using the FORMAT function to convert the datetime value to dd-mm-yyyy hh:mm format.

 

SELECT FORMAT(GETDATE(), 'dd-mm-yyyy hh:mm')
--------------------------------------------
22-59-2023 10:59

SQL DateTime in MMM dd yyyy Format

 

By using the FORMAT function, we can convert the datetime value to MMM dd yyyy format.

 

SELECT FORMAT(GETDATE(), 'MMM dd yyyy')
---------------------------------------
Mar 22 2023

SQL DateTime in hh:mm:ss AM/PM Format

 

We can convert the datetime value to hh:mm:ss AM/PM using the FORMAT function as shown below.

 

SELECT FORMAT(GETDATE(), 'hh:mm:ss tt')
---------------------------------------
11:04:00 AM

SQL Format DateTime with Culture

 

In SQL, we can do the regional formatting using the culture option in the FORMAT function as shown below.

 

English – INDIA

 

SELECT FORMAT (GETDATE(), 'd', 'en-IN')
---------------------------------------
22-03-2023

English - USA

 

SELECT FORMAT (GETDATE(), 'd', 'en-US')
---------------------------------------
3/22/2023

French - FRANCE

 

SELECT FORMAT (GETDATE(), 'd', 'fr-FR')
---------------------------------------
22/03/2023

Japanese - JAPAN

 

SELECT FORMAT (GETDATE(), 'd', 'ja-jp')
---------------------------------------
2023/03/22

This is how you can use CONVERT and FORMAT functions in SQL to convert/format the given datetime data type values to the required format.