sql >> Databasteknik >  >> RDS >> Sqlserver

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

I SQL Server, DATETIMEFROMPARTS() Funktionen fungerar precis som DATEFROMPARTS() funktion, förutom att den också returnerar tidsdelen av datumet.

Den DATETIMEFROMPARTS() Funktionen accepterar sju argument, som var och en representerar olika delar av datumet/tiden. Funktionen returnerar sedan en datetime värde från de givna delarna.

Syntax

Så här går syntaxen till:

DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds )

Där varje argument är ett heltalsuttryck som anger den delen av datumet. Till exempel year är ett heltal som anger årsdelen av datumet.

Exempel

Här är ett exempel som visar hur det fungerar:

SELECT DATETIMEFROMPARTS( 2021, 05, 10, 23, 35, 29, 500 ) AS Result;

Resultat:

+-------------------------+
| Result                  |
|-------------------------|
| 2021-05-10 23:35:29.500 |
+-------------------------+

Så du kan se att vart och ett av våra argument visas i den tillämpliga delen av resultatet.

Ogiltiga värden

Värdena måste ligga inom ett giltigt intervall för den specifika datumdelen. Du kan till exempel inte ange att en timdel ska vara 30 (den måste vara mellan 0 och 24). Exempel:

SELECT DATETIMEFROMPARTS( 2021, 05, 10, 30, 35, 29, 500 ) AS Result;

Resultat:

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

Antal argument

Du måste också ange rätt antal argument (7). Om du inte gör det får du ett felmeddelande som förklarar detta:

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

Resultat:

The datetimefromparts function requires 7 argument(s). 

Nullvärden

Om något av argumenten är nollvärden blir resultatet NULL :

SELECT DATETIMEFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500 ) AS Result;

Resultat:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

  1. Hur returnerar man resultatet av en SELECT inuti en funktion i PostgreSQL?

  2. JOIN-frågor kontra flera frågor

  3. Hur man får MySQL att hantera UTF-8 korrekt

  4. Varför oracle IN-klausul har en gräns på 1000 endast för statisk data?