Delen via


DATENAME (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

Deze functie geeft een tekenstring terug die het gespecificeerde datumdeel van de opgegeven datum vertegenwoordigt.

Zie Datum- en tijdgegevenstypen en -functies (Transact-SQL) voor een overzicht van alle transact-SQL-datum- en tijdgegevenstypen en -functies.

Transact-SQL syntaxis-conventies

Syntaxis

DATENAME ( datepart , date )  

Arguments

datepart
Het specifieke deel van het datumargument dat DATENAME terugkomt. Deze tabel bevat alle geldige datumonderdelenargumenten .

Opmerking

DATENAME accepteert geen door de gebruiker gedefinieerde variabele-equivalenten voor de datepart-argumenten .

datepart Abbreviations
jaar yyy, jjjj
wijk qq, q
maand mm, m
dayofyear dy, y
dag dd, d
week WK, WW
weekdag dw, w
uur hh
minuut mi, n
tweede ss, s
milliseconde mevrouw
microseconde Mcs
nanoseconde Ns
TZoffset tz
ISO_WEEK ISOWK, ISOWW

date

Een expressie die kan worden opgelost naar een van de volgende datatypen:

  • date
  • datetime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • time

Voor datumDATENAME accepteert u een kolomexpressie, expressie, letterlijke tekenreeks of door de gebruiker gedefinieerde variabele. Gebruik viercijferige jaren om dubbelzinnigheidsproblemen te voorkomen. Zie De optie serverconfiguratie van twee cijfers configureren voor meer informatie over tweecijferige jaren.

Retourtype

nvarchar

Retourwaarde

  • Elk datumdeel en de bijbehorende afkortingen geven dezelfde waarde als resultaat.

De retourwaarde hangt af van de taalomgeving die is ingesteld met SET LANGUAGE, en van de optie Configure the default language Server Configuration Option van het login. De retourwaarde hangt af van SET DATEFORMAT als datum een stringliteral is van sommige formaten. SET DATEFORMAT verandert de retourwaarde niet wanneer de datum een kolomuitdrukking is van een datum- of tijddatatype.

Wanneer de datumparameter een datumdatatype-argument heeft, hangt de retourwaarde af van de instelling die door SET DATEFIRST is gespecificeerd.

TZoffset datepart Argument

Als het datepart-argumentTZoffset (tz) is en het date-argument geen tijdzone-offset, DATEADD geeft 0 terug.

smalldatetime date Argument

Wanneer datumsmalldatetime is, DATENAME geeft seconden als 00 terug.

Standaard Teruggegeven voor een datumdeel die niet in het datumargument voorkomt

Als het datatype van het datumargument niet het gespecificeerde datumdeel heeft, DATENAME zal de standaard voor die datumdeel alleen teruggeven als het datumargument een letterlijke heeft.

Bijvoorbeeld, de standaard jaar-maand-dag voor elk datumdatatype is 1900-01-01. Deze stelling bevat datumdeelargumenten voor datumdeel, een tijdsargument voor datum, en DATENAME retourneert 1900, January, 1, 1, Monday.

SELECT DATENAME(year, '12:10:30.123')  
    ,DATENAME(month, '12:10:30.123')  
    ,DATENAME(day, '12:10:30.123')  
    ,DATENAME(dayofyear, '12:10:30.123')  
    ,DATENAME(weekday, '12:10:30.123');  

Als datum is opgegeven als een variabele- of tabelkolom, en het datatype voor die variabele of kolom het opgegeven datumdeel niet heeft, DATENAME geeft fout 9810 terug. In dit voorbeeld heeft variabele @t een tijdsdatatype . Het voorbeeld faalt omdat de datum deeljaar ongeldig is voor het tijdsdatatype :

DECLARE @t time = '12:10:30.123';   
SELECT DATENAME(year, @t);  

Opmerkingen

Gebruik DATENAME in de volgende componenten:

  • GROEP OP
  • HAVING
  • SORTEER OP
  • SELECT-lijst <>
  • WHERE

In SQL Server castt DATENAME impliciet stringliterals als een type-datetime2 . Met andere woorden, DATENAME ondersteunt het formaat YDM niet wanneer de datum als string wordt doorgegeven. U moet de tekenreeks expliciet casten naar een datum/tijd - of smalldatetime-type om de YDM-indeling te gebruiken.

Voorbeelden

Dit voorbeeld geeft de datumdelen terug voor de opgegeven datum. Vervang een datepart-waarde uit de tabel in plaats van het datepart argument in de SELECT-instructie:

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');

Hier is het resultatenoverzicht.

datepart Retourwaarde
jaar, jjj, jij 2007
kwart, qq, q 4
maand, mm, m Oktober
Dagvanjaar, Dy, Y 303
Day, DD, D 30
week, week, ww 44
Doordeweeks, DW Dinsdag
uur, hh 12
minuut, n 15
Ten tweede, ss, s 32
milliseconde, ms 123
Microseconde, MCS 123456
nanoseconde, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWW 44

Azure Synapse Analytics and Analytics Platform System (PDW)

Dit voorbeeld geeft de datumdelen terug voor de opgegeven datum. Vervang een datepart-waarde uit de tabel in plaats van het datepart argument in de SELECT-instructie:

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');  

Hier is het resultatenoverzicht.

datepart Retourwaarde
jaar, jjj, jij 2007
kwart, qq, q 4
maand, mm, m Oktober
Dagvanjaar, Dy, Y 303
Day, DD, D 30
week, week, ww 44
Doordeweeks, DW Dinsdag
uur, hh 12
minuut, n 15
Ten tweede, ss, s 32
milliseconde, ms 123
Microseconde, MCS 123456
nanoseconde, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWW 44

Zie ook

CAST en CONVERTEREN (Transact-SQL)