sql >> Databasteknik >  >> RDS >> Sqlserver

DATETIMEOFFSETFROMPARTS() Exempel i SQL Server (T-SQL)

T-SQL har en funktion som heter DATETIMEOFFSETFROMPARTS() som låter dig få en datumtidsförskjutning värde från de olika separata delarna av ett datum. Specifikt returnerar den en datumtidsförskjutning värde för angivet datum och tid och med angivna förskjutningar och precision.

Exempel på denna funktion nedan.

Syntax

Syntaxen ser ut så här:

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )

Var:

  • De första 7 argumenten är heltalsuttryck som anger den specifika datum-/tidsdelen.
  • hour_offset argument är ett heltalsuttryck som anger timdelen av tidszonsförskjutningen.
  • minute_offset är ett heltalsuttryck som anger minutdelen av tidszonsförskjutningen.
  • precision argument är ett heltal som anger precisionen för datetimeoffset värde som ska returneras. Detta värde anger faktiskt skalan (dvs. antalet siffror till höger om decimalen).

Exempel

Här är ett exempel på användning.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultat:

Result
----------------------------------
2021-05-10 23:35:29.0500 +12:30

Ogiltiga argument

Du måste se till att alla argument är giltiga, annars får du ett felmeddelande. Här är ett exempel på att tillhandahålla en timdel utanför intervallet (25). Timdelen kan bara vara mellan 0 och 24.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultat:

Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.

Antal argument

Du måste ange rätt antal argument (10). Om du inte gör det får du ett felmeddelande.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10 ) AS Result;

Resultat:

The datetimeoffsetfromparts function requires 10 argument(s).

Nollargument

Om något av de första 9 argumenten är null, blir resultatet NULL :

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultat:

Result
----------------------------------
NULL

Men om det sista (precisions)argumentet är null, returneras ett fel:

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) 
AS Result;

Resultat:

Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.

Se även DATETIME2FROMPARTS()-exempel i SQL Server (T-SQL) för att returnera en datetime2 värde (utan offset).


  1. Fördelar med MySQLi över MySQL

  2. Hur installerar jag Oracle Instant Client på en Mac?

  3. 2 sätt att lista alla lagrade procedurer i MySQL

  4. Sammankoppla grupper i SQL Server