- SQL Tutorial
- SQL - Home
- SQL - Overview
- SQL - RDBMS Concepts
- SQL - Databases
- SQL - Syntax
- SQL - Data Types
- SQL - Operators
- SQL - Expressions
- SQL Database
- SQL - Create Database
- SQL - Drop Database
- SQL - Select Database
- SQL - Rename Database
- SQL - Show Databases
- SQL - Backup Database
- SQL Table
- SQL - Create Table
- SQL - Show Tables
- SQL - Rename Table
- SQL - Truncate Table
- SQL - Clone Tables
- SQL - Temporary Tables
- SQL - Alter Tables
- SQL - Drop Table
- SQL - Delete Table
- SQL - Constraints
- SQL Queries
- SQL - Insert Query
- SQL - Select Query
- SQL - Select Into
- SQL - Insert Into Select
- SQL - Update Query
- SQL - Delete Query
- SQL - Sorting Results
- SQL Views
- SQL - Create Views
- SQL - Update Views
- SQL - Drop Views
- SQL - Rename Views
- SQL Operators and Clauses
- SQL - Where Clause
- SQL - Top Clause
- SQL - Distinct Clause
- SQL - Order By Clause
- SQL - Group By Clause
- SQL - Having Clause
- SQL - AND & OR
- SQL - BOOLEAN (BIT) Operator
- SQL - LIKE Operator
- SQL - IN Operator
- SQL - ANY, ALL Operators
- SQL - EXISTS Operator
- SQL - CASE
- SQL - NOT Operator
- SQL - NOT EQUAL
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN Operator
- SQL - UNION Operator
- SQL - UNION vs UNION ALL
- SQL - INTERSECT Operator
- SQL - EXCEPT Operator
- SQL - Aliases
- SQL Joins
- SQL - Using Joins
- SQL - Inner Join
- SQL - Left Join
- SQL - Right Join
- SQL - Cross Join
- SQL - Full Join
- SQL - Self Join
- SQL - Delete Join
- SQL - Update Join
- SQL - Left Join vs Right Join
- SQL - Union vs Join
- SQL Keys
- SQL - Unique Key
- SQL - Primary Key
- SQL - Foreign Key
- SQL - Composite Key
- SQL - Alternate Key
- SQL Indexes
- SQL - Indexes
- SQL - Create Index
- SQL - Drop Index
- SQL - Show Indexes
- SQL - Unique Index
- SQL - Clustered Index
- SQL - Non-Clustered Index
- Advanced SQL
- SQL - Wildcards
- SQL - Comments
- SQL - Injection
- SQL - Hosting
- SQL - Min & Max
- SQL - Null Functions
- SQL - Check Constraint
- SQL - Default Constraint
- SQL - Stored Procedures
- SQL - NULL Values
- SQL - Transactions
- SQL - Sub Queries
- SQL - Handling Duplicates
- SQL - Using Sequences
- SQL - Auto Increment
- SQL - Date & Time
- SQL - Cursors
- SQL - Common Table Expression
- SQL - Group By vs Order By
- SQL - IN vs EXISTS
- SQL - Database Tuning
- SQL Function Reference
- SQL - Date Functions
- SQL - String Functions
- SQL - Aggregate Functions
- SQL - Numeric Functions
- SQL - Text & Image Functions
- SQL - Statistical Functions
- SQL - Logical Functions
- SQL - Cursor Functions
- SQL - JSON Functions
- SQL - Conversion Functions
- SQL - Datatype Functions
- SQL Useful Resources
- SQL - Questions and Answers
- SQL - Quick Guide
- SQL - Useful Functions
- SQL - Useful Resources
- SQL - Discussion
SQL - TODATETIMEOFFSET() Function
The SQL TODATETIMEOFFSET() function is a Date and Time Function that uses the user-specified datetime2 and time zone to return a datetimeoffset value.
The TODATETIMEOFFSET function operates two inputs − a target time zone offset and a nonoffset date and time value, and it simply combines the two to produce a DATETIMEOFFSET value. The output of this function is a value of the data type datetimeoffset.
We can provide the time zone in the format of minutes or hours. If we provide in minutes, we use an integer (-4); if we provide in hours, we use a string ('+06.00'). The range for the time zone is +14 to -14 (hours).
Syntax
Following is the syntax of the SQL TODATETIMEOFFSET() function −
TODATETIMEOFFSET(expression,time_zone)
Parameters
This function accepts only two parameter. The same is described below −
expression − that to be resolved into datetime2 value.
time_zone − it is a timezone offset or signed integer range from +14 to -14.
Example
In the following example, we are going to change the timezone offset of minutes by using the following query −
In this example, we are going to change current time zone to -150minutes;
SELECT TODATETIMEOFFSET (GETDATE(), -150) AS Result;
Output
When we execute the above query, the output is obtained as follows −
+--------------------------------+ | Result | +--------------------------------+ | 2023-02-20 12:52:55.827 -02:30 | +--------------------------------+
Example
Let us look into in the another scenario, where we are going to change the time zone using minutes in positive by using the following query −
SELECT TODATETIMEOFFSET (GETDATE(), 360) AS Result;
Output
When the query, gets executed it will generate the output as shown below −
+--------------------------------+ | Result | +--------------------------------+ | 2023-02-20 15:22:33.533 +06:00 | +--------------------------------+
Example
In the following example, we are using going to set variable explicitly with a datetime2 value, and applyingTODATETIMEOFFSET() to that value and comparing both the values by using the following query −
DECLARE @DATE datetime2 = '2023-02-20 02:33:18.0000000'; SELECT @DATE AS 'Original Date', TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';
Output
On executing the above query, the output is displayed as follows −
+-----------------------------+-------------------------------------+ | Original Date | +06:00 | +-----------------------------+-------------------------------------+ | 2023-02-20 02:33:18.0000000 | 2023-02-20 02:33:18.0000000 +06:00 | +-----------------------------+-------------------------------------+
Example
Let us look into another example, where we are going to set the timezone offset as integer by using the following query −
SELECT TODATETIMEOFFSET( '2023-02-20 02:33:18.0000000', -150 ) AS Result;
Output
The output for the above query is produced as given below −
+------------------------------------+ | Result | +------------------------------------+ | 2023-02-20 02:33:18.0000000 -02:30 | +------------------------------------+
Example
Let us look into the following example where we are using the SYSDATETIMEOFFSET() function as a date expression, which generates the current date/time of the system that SQL server running by using the following query −
SELECT SYSDATETIMEOFFSET() AS 'Current Date', TODATETIMEOFFSET( SYSDATETIMEOFFSET(), '+06:00' ) AS '+06:00';
Output
When the query gets executed, it will generate an output as shown below −
+------------------------------------+------------------------------------+ | Current Date | +06:00 | +------------------------------------+------------------------------------+ | 2023-02-20 14:50:06.8050290 +05:30 | 2023-02-20 14:50:06.8050290 +06:00 | +------------------------------------+------------------------------------+
Example
In the following example, we are using the DATETIMEOFFSET() function and going to retrieve the offset value using the TODATETIMEOFFSET() function by using the following query −
DECLARE @DATE DATETIMEOFFSET = '2023-02-20 14:50:06.8050290 +04:30'; SELECT @DATE AS 'Original Date', TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';
Output
On running the above query, it will generate the output as shown below −
+------------------------------------+------------------------------------+ | Original Date | +06:00 | +------------------------------------+------------------------------------+ | 2023-02-20 14:50:06.8050290 +04:30 | 2023-02-20 14:50:06.8050290 +06:00 | +------------------------------------+------------------------------------+
Example
In the following example, we are using the DATETIMEOFFSET() function and going to retrieve the offset value using the TODATETIMEOFFSET() function by using the following query −
DECLARE @DATE DATETIMEOFFSET = '2023-02-20 14:50:06.8050290 +04:30'; SELECT @DATE AS 'Original Date', TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';
Output
On running the above query, it will generate the output as shown below −
+------------------------------------+------------------------------------+ | Original Date | +06:00 | +------------------------------------+------------------------------------+ | 2023-02-20 14:50:06.8050290 +04:30 | 2023-02-20 14:50:06.8050290 +06:00 | +------------------------------------+------------------------------------+
Example
Look at the following example, where we are going to change the timezone using hours by running the following query −
SELECT TODATETIMEOFFSET (GETDATE(), '+05:30') AS Result;
Output
If we execute the above query, the result is produced as follows −
+--------------------------------+ | Result | +--------------------------------+ | 2023-02-20 15:12:41.213 +05:30 | +--------------------------------+
Example
Here is another scenario where we are going to change the time zone using hours in negative by using the following query −
SELECT TODATETIMEOFFSET (GETDATE(), '-06:00') AS Result;
Output
On executing the above query, it will generate the following output as shown below −
+---------------------------------+ | Result | +---------------------------------+ | 2023-02-20 15:16:30.247 -06:00 | +---------------------------------+
To Continue Learning Please Login
Login with Google