datetimeoffset (Transact-SQL)datetimeoffset (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure SQL Data Warehouse ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Définit une date qui est associée à une heure de la journée qui prend en charge les fuseaux horaires et se présente au format 24 heures.Defines a date that is combined with a time of a day that has time zone awareness and is based on a 24-hour clock.

Description de datetimeoffsetdatetimeoffset description

PropriétéProperty ValeurValue
SyntaxeSyntax datetimeoffset [ (précision à la fraction de seconde) ]datetimeoffset [ (fractional seconds precision) ]
UtilisationUsage DECLARE @MyDatetimeoffset datetimeoffset(7)DECLARE @MyDatetimeoffset datetimeoffset(7)

CREATE TABLE Table1 ( Column1 datetimeoffset(7) )CREATE TABLE Table1 ( Column1 datetimeoffset(7) )
Formats de littéraux de chaîne par défaut (utilisés pour le client de bas niveau)Default string literal formats (used for down-level client) AAAA-MM-JJ hh:mm:ss[.nnnnnnn] [{+|-}hh:mm]YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm]

Pour plus d’informations, consultez la section « Compatibilité descendante pour les clients de bas niveau » ci-dessous.For more information, see the "Backward Compatibility for Down-level Clients" section that follows.
Plage de datesDate range 0001-01-01 à 9999-12-310001-01-01 through 9999-12-31

Du 1er janvier de l’an 1 au 31 décembre 9999January 1, 1 CE through December 31, 9999 CE
Plage temporelleTime range 00:00:00 à 23:59:59.9999999 (les fractions de seconde ne sont pas prises en charge dans Informatica)00:00:00 through 23:59:59.9999999 (fractional seconds are not supported in Informatica)
Plage de décalages de fuseau horaireTime zone offset range -14:00 à +14:00 (le décalage de fuseau horaire est ignoré dans Informatica)-14:00 through +14:00 (the time zone offset is ignored in Informatica)
Plages d'élémentsElement ranges AAAA comprend quatre chiffres, entre 0001 et 9999, qui représentent une année.YYYY is four digits, ranging from 0001 through 9999, that represent a year.

MM comprend deux chiffres, entre 01 et 12, qui représentent un mois de l’année spécifiée.MM is two digits, ranging from 01 to 12, that represent a month in the specified year.

DD comprend deux chiffres, entre 01 et 31 selon le mois, qui représentent un jour du mois spécifié.DD is two digits, ranging from 01 to 31 depending on the month, that represent a day of the specified month.

hh comprend deux chiffres, entre 00 et 23, qui représentent l'heure.hh is two digits, ranging from 00 to 23, that represent the hour.

mm comprend deux chiffres, entre 00 et 59, qui représentent la minute.mm is two digits, ranging from 00 to 59, that represent the minute.

ss comprend deux chiffres, entre 00 et 59, qui représentent la seconde.ss is two digits, ranging from 00 to 59, that represent the second.

n* comprend entre zéro et sept chiffres, entre 0 et 9999999, qui représentent les fractions de seconde.n* is zero to seven digits, ranging from 0 to 9999999, that represent the fractional seconds. Les fractions de seconde ne sont pas prises en charge dans Informatica.Fractional seconds are not supported in Informatica.

hh comprend deux chiffres, entre -14 et +14.hh is two digits that range from -14 to +14. Le décalage de fuseau horaire est ignoré dans Informatica.The time zone offset is ignored in Informatica.

mm comprend deux chiffres, entre 00 et 59.mm is two digits that range from 00 to 59. Le décalage de fuseau horaire est ignoré dans Informatica.The time zone offset is ignored in Informatica.
Longueur de caractèreCharacter length 26 positions au minimum (AAAA-MM-JJ hh:mm:ss {+|-}hh:mm) et 34 au maximum (AAAA-MM-JJ hh:mm:ss.nnnnnnn {+|-}hh:mm)26 positions minimum (YYYY-MM-DD hh:mm:ss {+|-}hh:mm) to 34 maximum (YYYY-MM-DD hh:mm:ss.nnnnnnn {+|-}hh:mm)
Précision, échellePrecision, scale Consultez le tableau ci-dessous.See the table below.
Taille de stockageStorage size 10 octets, fixes, sont la valeur par défaut avec une précision à la fraction de seconde de 100 ns par défaut.10 bytes, fixed is the default with the default of 100ns fractional second precision.
PrécisionAccuracy 100 nanosecondes100 nanoseconds
Valeur par défautDefault value 1900-01-01 00:00:00 00:001900-01-01 00:00:00 00:00
CalendrierCalendar GrégorienGregorian
Précision à la fraction de seconde définie par l'utilisateurUser-defined fractional second precision OuiYes
Prise en charge et conservation du décalage de fuseau horaireTime zone offset aware and preservation OuiYes
Prise en charge de l'heure d'étéDaylight saving aware NonNo
Échelle spécifiéeSpecified scale Résultat (précision, échelle)Result (precision, scale) Longueur de colonne (octets)Column length (bytes) Précision en fractions de secondeFractional seconds precision
datetimeoffsetdatetimeoffset (34,7)(34,7) 1010 77
datetimeoffset(0)datetimeoffset(0) (26,0)(26,0) 88 0-20-2
datetimeoffset(1)datetimeoffset(1) (28,1)(28,1) 88 0-20-2
datetimeoffset(2)datetimeoffset(2) (29,2)(29,2) 88 0-20-2
datetimeoffset(3)datetimeoffset(3) (30,3)(30,3) 99 3-43-4
datetimeoffset(4)datetimeoffset(4) (31,4)(31,4) 99 3-43-4
datetimeoffset(5)datetimeoffset(5) (32,5)(32,5) 1010 5-75-7
datetimeoffset(6)datetimeoffset(6) (33,6)(33,6) 1010 5-75-7
datetimeoffset(7)datetimeoffset(7) (34,7)(34,7) 1010 5-75-7

Formats de littéraux de chaîne pris en charge pour datetimeoffsetSupported string literal formats for datetimeoffset

Le tableau suivant répertorie les formats de littéraux de chaîne ISO 8601 pris en charge pour datetimeoffset.The following table lists the supported ISO 8601 string literal formats for datetimeoffset. Pour plus d’informations sur les formats alphabétique, numérique, non séparé et d’heure pour les parties de date et d’heure de datetimeoffset, consultez date (Transact-SQL) et time (Transact-SQL).For information about alphabetical, numeric, unseparated and time formats for the date and time parts of datetimeoffset, see date (Transact-SQL) and time (Transact-SQL).

ISO 8601ISO 8601 DescriptionDescription
AAAA-MM-JJThh:mm:ss[.nnnnnnn][{+|-}hh:mm]YYYY-MM-DDThh:mm:ss[.nnnnnnn][{+|-}hh:mm] Ces deux formats ne sont pas affectés par les paramètres régionaux de session SET LANGUAGE et SET DATEFORMAT.These two formats are not affected by the SET LANGUAGE and SET DATEFORMAT session locale settings. Les espaces ne sont pas autorisés entre les éléments datetimeoffset et datetime.Spaces are not allowed between the datetimeoffset and the datetime parts.
AAAA-MM-JJThh:mm:ss[.nnnnnnn]Z (UTC)YYYY-MM-DDThh:mm:ss[.nnnnnnn]Z (UTC) Ce format par définition ISO indique que la partie datetime doit être exprimée dans le fuseau horaire UTC.This format by ISO definition indicates the datetime portion should be expressed in Coordinated Universal Time (UTC). Par exemple, 1999-12-12 12:30:30.12345 -07:00 doit être représenté sous la forme 1999-12-12 19:30:30.12345Z.For example, 1999-12-12 12:30:30.12345 -07:00 should be represented as 1999-12-12 19:30:30.12345Z.

Décalage de fuseau horaireTime zone offset

Un décalage de fuseau horaire spécifie le décalage de la zone de fuseau horaire UTC pour une valeur time ou datetime.A time zone offset specifies the zone offset from UTC for a time or datetime value. Le décalage de fuseau horaire peut être représenté sous la forme [+|-] hh:mm:The time zone offset can be represented as [+|-] hh:mm:

  • hh comprend deux chiffres, entre 00 et 14, qui représentent le nombre d'heures dans le décalage de fuseau horaire.hh is two digits that range from 00 to 14 and represent the number of hours in the time zone offset.
  • mm comprend deux chiffres, entre 00 et 59, qui représentent le nombre de minutes supplémentaires dans le décalage de fuseau horaire.mm is two digits, ranging from 00 to 59, that represent the number of additional minutes in the time zone offset.
  • + (plus) ou - (moins) est le signe obligatoire pour un décalage de fuseau horaire.+ (plus) or - (minus) is the mandatory sign for a time zone offset. Cela indique si le décalage de fuseau horaire est ajouté au temps UTC ou soustrait de celui-ci pour obtenir l’heure locale.This indicates whether the time zone offset is added or subtracted from the UTC time to obtain the local time. La plage valide du décalage de fuseau horaire se situe entre -14:00 et +14:00.The valid range of time zone offset is from -14:00 to +14:00.

La plage des décalages de fuseau horaire respecte la norme XML W3C pour la définition de schéma XSD et est légèrement différente de la définition de la norme SQL 2003, 12:59 à +14:00.The time zone offset range follows the W3C XML standard for XSD schema definition and is slightly different from the SQL 2003 standard definition, 12:59 to +14:00.

Le paramètre de type facultatif précision à la fraction de seconde spécifie le nombre de chiffres pour la partie fractionnaire des secondes.The optional type parameter fractional seconds precision specifies the number of digits for the fractional part of the seconds. Cette valeur peut être un entier avec 0 à 7 chiffres (100 nanosecondes).This value can be an integer with 0 to 7 (100 nanoseconds). La précision à la fraction de seconde par défaut est 100 ns (sept chiffres pour la partie fractionnaire des secondes).The default fractional seconds precision is 100ns (seven digits for the fractional part of the seconds).

Les données sont stockées dans la base de données, puis traitées, comparées, triées et indexées sur le serveur comme au format UTC.The data is stored in the database and processed, compared, sorted, and indexed in the server as in UTC. Le décalage de fuseau horaire sera conservé dans la base de données pour récupération.The time zone offset will be preserved in the database for retrieval.

Le décalage de fuseau horaire donné sera supposé prendre en charge l’heure d’été et être réglé pour tout datetime donné situé dans la période d’observation de l’heure d’été.The given time zone offset will be assumed to be daylight saving time (DST) aware and adjusted for any given datetime that is in the DST period.

Pour le type datetimeoffset, les valeurs datetime UTC et locale (pour le décalage de fuseau horaire persistant ou préservé) seront validées lors des opérations d’insertion, de mise à jour, arithmétique, de conversion ou d’attribution.For datetimeoffset type, both UTC and local (to the persistent or converted time zone offset) datetime value will be validated during insert, update, arithmetic, convert, or assign operations. La détection de toute valeur datetime UTC ou locale non valide (pour le décalage de fuseau horaire persistant ou préservé) déclenchera une erreur de valeur non valide.The detection of any invalid UTC or local (to the persistent or converted time zone offset) datetime value will raise an invalid value error. Par exemple, 9999-12-31 10:10:00 est valide au format UTC, mais déborde en heure locale sur le décalage de fuseau horaire +13:50.For example, 9999-12-31 10:10:00 is valid in UTC, but overflow in local time to the time zone offset +13:50.

Pour convertir une date en valeur datetimeoffset correspondante dans un fuseau horaire cible, consultez AT TIME ZONE (Transact-SQL).To convert a date to a corresponding datetimeoffset value in a target time zone, see AT TIME ZONE (Transact-SQL).

Conformité ANSI et ISO 8601ANSI and ISO 8601 compliance

Les sections relatives à la conformité ANSI et ISO 8601 des rubriques date et time s’appliquent à datetimeoffset.The ANSI and ISO 8601 Compliance sections of the date and time topics apply to datetimeoffset.

Compatibilité descendante pour les clients de bas niveauBackward compatibility for down-level clients

Certains clients de bas niveau ne prennent pas en charge les types de données time, date, datetime2 et datetimeoffset.Some down-level clients do not support the time, date, datetime2 and datetimeoffset data types. Le tableau suivant présente le type de mappage entre une instance de haut niveau de SQL ServerSQL Server et des clients de bas niveau.The following table shows the type mapping between an up-level instance of SQL ServerSQL Server and down-level clients.

Type de données SQL ServerSQL ServerSQL ServerSQL Server data type Format de littéral de chaîne par défaut passé au client de bas niveauDefault string literal format passed to down-level client ODBC de bas niveauDown-level ODBC OLEDB de bas niveauDown-level OLEDB JDBC de bas niveauDown-level JDBC SQLCLIENT de bas niveauDown-level SQLCLIENT
timetime hh:mm:ss [.nnnnnnn]hh:mm:ss[.nnnnnnn] SQL_WVARCHAR ou SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR ou DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String ou SqStringString or SqString
datedate AAAA-MM-JJYYYY-MM-DD SQL_WVARCHAR ou SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR ou DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String ou SqStringString or SqString
datetime2datetime2 AAAA-MM-JJ hh:mm:ss[.nnnnnnn]YYYY-MM-DD hh:mm:ss[.nnnnnnn] SQL_WVARCHAR ou SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR ou DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String ou SqStringString or SqString
datetimeoffsetdatetimeoffset AAAA-MM-JJ hh:mm:ss[.nnnnnnn] [+|-]hh:mmYYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm SQL_WVARCHAR ou SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR ou DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String ou SqStringString or SqString

Conversion de données date et timeConverting date and time data

Lorsque vous effectuez une conversion vers des types de données date et heure, SQL ServerSQL Server rejette toutes les valeurs qu'il ne peut identifier comme dates ou heures.When you convert to date and time data types, SQL ServerSQL Server rejects all values it cannot recognize as dates or times. Pour plus d’informations sur l’utilisation des fonctions CAST et CONVERT avec des données date et time, consultez CAST et CONVERT (Transact-SQL)For information about using the CAST and CONVERT functions with date and time data, see CAST and CONVERT (Transact-SQL)

Conversion du type de données datetimeoffset en d’autres types date et timeConverting datetimeoffset data type to other date and time types

Cette section décrit ce qui se produit quand un type de données datetimeoffset est converti en d’autres types de données date et time.This section describes what occurs when a datetimeoffset data type is converted to other date and time data types.

Dans le cas d’une conversion en date, l’année, le mois et le jour sont copiés.When converting to date, the year, month, and day are copied. Le code suivant montre les résultats de la conversion d'une valeur datetimeoffset(4) en valeur date.The following code shows the results of converting a datetimeoffset(4) value to a date value.

DECLARE @datetimeoffset datetimeoffset(4) = '12-10-25 12:32:10 +01:00';  
DECLARE @date date= @datetimeoffset;  
  
SELECT @datetimeoffset AS '@datetimeoffset ', @date AS 'date';  
  
--Result  
--@datetimeoffset                date  
-------------------------------- ----------  
--2025-12-10 12:32:10.0000 +01:0 2025-12-10  
--  
--(1 row(s) affected)  
  

Dans le cas d’une conversion en time(n) , l’heure, la minute, la seconde et les fractions de seconde sont copiées.If the conversion is to time(n), the hour, minute, second, and fractional seconds are copied. La valeur de fuseau horaire est tronquée.The time zone value is truncated. Quand la précision de la valeur datetimeoffset(n) est supérieure à la précision de la valeur time(n) , la valeur est arrondie.When the precision of the datetimeoffset(n) value is greater than the precision of the time(n) value, the value is rounded up. Le code suivant montre les résultats de la conversion d'une valeur datetimeoffset(4) en valeur time(3).The following code shows the results of converting a datetimeoffset(4) value to a time(3) value.

DECLARE @datetimeoffset datetimeoffset(4) = '12-10-25 12:32:10.1237 +01:0';  
DECLARE @time time(3) = @datetimeoffset;  
  
SELECT @datetimeoffset AS '@datetimeoffset ', @time AS 'time';  
  
--Result  
--@datetimeoffset                time  
-------------------------------- ------------  
-- 2025-12-10 12:32:10.1237 +01:00    12:32:10.124  
  
--  
--(1 row(s) affected)  
  

Dans le cas d’une conversion en datetime, les valeurs de date et heure sont copiées et le fuseau horaire est tronqué.When converting todatetime, the date and time values are copied, and the time zone is truncated. Quand la précision de fraction de la valeur datetimeoffset(n) est supérieure à trois chiffres, la valeur est tronquée.When the fractional precision of the datetimeoffset(n) value is greater than three digits, the value is truncated. Le code suivant montre les résultats de la conversion d'une valeur datetimeoffset(4) en valeur datetime.The following code shows the results of converting a datetimeoffset(4) value to a datetime value.

DECLARE @datetimeoffset datetimeoffset(4) = '12-10-25 12:32:10.1237 +01:0';  
DECLARE @datetime datetime = @datetimeoffset;  
  
SELECT @datetimeoffset AS '@datetimeoffset ', @datetime AS 'datetime';  
  
--Result  
--@datetimeoffset                datetime  
-------------------------------- -----------------------  
--2025-12-10 12:32:10.1237 +01:0 2025-12-10 12:32:10.123  
--  
--(1 row(s) affected)  

Dans le cas d’une conversion en smalldatetime, la date et les heures sont copiées.For conversions to smalldatetime, the date and hours are copied. Les minutes sont arrondies selon la valeur des secondes et les secondes sont définies sur 0.The minutes are rounded up with respect to the seconds value and seconds are set to 0. Le code suivant montre les résultats de la conversion d'une valeur datetimeoffset(3) en valeur smalldatetime.The following code shows the results of converting a datetimeoffset(3) value to a smalldatetime value.

DECLARE @datetimeoffset datetimeoffset(3) = '1912-10-25 12:24:32 +10:0';  
DECLARE @smalldatetime smalldatetime = @datetimeoffset;  
  
SELECT @datetimeoffset AS '@datetimeoffset', @smalldatetime AS '@smalldatetime';  
  
--Result  
--@datetimeoffset                @smalldatetime  
-------------------------------- -----------------------  
--1912-10-25 12:24:32.000 +10:00 1912-10-25 12:25:00  
--  
--(1 row(s) affected)  

Dans le cas d’une conversion en datetime2(n) , la date et l’heure sont copiées dans la valeur datetime2 et le fuseau horaire est tronqué.If the conversion is to datetime2(n), the date and time are copied to the datetime2 value, and the time zone is truncated. Quand la précision de la valeur datetime2(n) est supérieure à la précision de la valeur datetimeoffset(n) , les fractions de seconde sont tronquées en conséquence.When the precision of the datetime2(n) value is greater than the precision of the datetimeoffset(n) value, the fractional seconds are truncated to fit. Le code suivant montre les résultats de la conversion d'une valeur datetimeoffset(4) en valeur datetime2(3).The following code shows the results of converting a datetimeoffset(4) value to a datetime2(3) value.

DECLARE @datetimeoffset datetimeoffset(4) = '1912-10-25 12:24:32.1277 +10:0';  
DECLARE @datetime2 datetime2(3)=@datetimeoffset;  
  
SELECT @datetimeoffset AS '@datetimeoffset', @datetime2 AS '@datetime2';  
  
--Result  
@datetimeoffset                    @datetime2  
---------------------------------- ----------------------  
1912-10-25 12:24:32.1277 +10:00    1912-10-25 12:24:32.12  
  
--(1 row(s) affected)  

Conversion de littéraux de chaîne en datetimeoffsetConverting string literals to datetimeoffset

Les conversions de littéraux de chaîne en types de date et d'heure sont autorisées si toutes les parties des chaînes sont dans des formats valides.Conversions from string literals to date and time types are permitted if all parts of the strings are in valid formats. Sinon, une erreur d'exécution est déclenchée.Otherwise, a runtime error is raised. Les conversions implicites ou explicites qui ne spécifient pas de style à partir de types de date et d'heure en littéraux de chaîne seront au format par défaut de la session active.Implicit conversions or explicit conversions that do not specify a style, from date and time types to string literals will be in the default format of the current session. Le tableau suivant montre les règles de conversion d’un littéral de chaîne en type de données datetimeoffset.The following table shows the rules for converting a string literal to the datetimeoffset data type.

Littéral de chaîne d'entréeInput string literal datetimeoffset(n)datetimeoffset(n)
ODBC DATEODBC DATE Les littéraux de chaîne ODBC sont mappés au type de données datetime.ODBC string literals are mapped to the datetime data type. Toute opération d’affectation de littéraux ODBC DATETIME dans des types datetimeoffset provoque une conversion implicite entre datetime et ce type, comme défini par les règles de conversion.Any assignment operation from ODBC DATETIME literals into datetimeoffset types will cause an implicit conversion between datetime and this type as defined by the conversion rules.
ODBC TIMEODBC TIME Consultez la règle DATE ODBC précédente.See previous ODBC DATE rule.
ODBC DATETIMEODBC DATETIME Consultez la règle DATE ODBC précédente.See previous ODBC DATE rule.
DATE uniquementDATE only La partie TIME a pour valeur par défaut 00:00:00.The TIME part defaults to 00:00:00. TIMEZONE a pour valeur par défaut +00:00.The TIMEZONE defaults to +00:00.
TIME uniquementTIME only La partie DATE a pour valeur par défaut 1900-1-1.The DATE part defaults to 1900-1-1. TIMEZONE aura pour valeur par défaut +00:00.The TIMEZONE will default to +00:00.
TIMEZONE uniquementTIMEZONE only Les valeurs par défaut sont fourniesDefault values are supplied
DATE + TIMEDATE + TIME TIMEZONE a pour valeur par défaut +00:00.The TIMEZONE defaults to +00:00.
DATE + TIMEZONEDATE + TIMEZONE Non autoriséesNot allowed
TIME + TIMEZONETIME + TIMEZONE La partie DATE a pour valeur par défaut 1900-1-1.The DATE part defaults to 1900-1-1.
DATE + TIME + TIMEZONEDATE + TIME + TIMEZONE SimpleTrivial

ExemplesExamples

L’exemple suivant compare les résultats de la conversion d’une chaîne en chaque type de données date et time.The following example compares the results of casting a string to each date and time data type.

SELECT   
     CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'   
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'   
    ,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS   
        'smalldatetime'   
    ,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'   
    ,CAST('2007-05-08 12:35:29.1234567+12:15' AS datetime2(7)) AS   
        'datetime2'  
    ,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS   
        'datetimeoffset'  
    ,CAST('2007-05-08 12:35:29.1234567+12:15' AS datetimeoffset(7)) AS  
        'datetimeoffset IS08601';  

Voici l'ensemble des résultats.Here is the result set.

Type de donnéesData type SortieOutput
TimeTime 12:35:29.12:35:29. 12345671234567
DateDate 2007-05-082007-05-08
SmalldatetimeSmalldatetime 2007-05-08 12:35:002007-05-08 12:35:00
DateTimeDatetime 2007-05-08 12:35:29.1232007-05-08 12:35:29.123
datetime2datetime2 2007-05-08 12:35:29.2007-05-08 12:35:29. 12345671234567
DatetimeoffsetDatetimeoffset 2007-05-08 12:35:29.1234567 +12:152007-05-08 12:35:29.1234567 +12:15

Voir aussiSee also

CAST et CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)
AT TIME ZONE (Transact-SQL)AT TIME ZONE (Transact-SQL)