- 07/29/2017
- 3 minuten om te lezen
-
- c
- j
- r
- M
- M
-
+9
Geldt voor: SQL Server (alle ondersteunde versies) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Deze functie retourneert een tekenreeks die het gespecificeerde datadeel van de gespecificeerde datum weergeeft.
Zie Gegevenstypen en functies voor datum en tijd (Transact-SQL) voor een overzicht van alle gegevenstypen en functies voor datum en tijd in Transact-SQL.
Transact-SQL Syntax Conventions
Syntax
DATENAME ( datepart , date )
Note
Om de Transact-SQL syntax voor SQL Server 2014 en eerder te bekijken, zie de documentatie van eerdere versies.
Arguments
datepart
Het specifieke deel van het datumargument dat DATENAME
zal retourneren. In deze tabel staan alle geldige datepart argumenten.
Note
DATENAME
aanvaardt geen door de gebruiker gedefinieerde variabele equivalenten voor de datepart argumenten.
datepart | Afkortingen |
---|---|
year | yy, yyyy |
kwartaal | qq, q |
maand | mm, m |
dag van het jaar | dy, y |
dag | dd, d |
week | wk, ww |
weekdag | dw, w |
uur | hh |
minuut | mi, n |
tweede | ss, s |
milliseconde | ms |
microseconde | mcs |
nanoseconde | ns |
TZoffset | tz |
ISO_WEEK | ISOWK, ISOWW |
date
Een expressie die kan oplossen naar een van de volgende gegevenstypen:
- datum
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- smalldattime
Voor datum accepteert DATENAME
een kolomexpressie, expressie, string literal, of door de gebruiker gedefinieerde variabele. Gebruik viercijferige jaartallen om dubbelzinnigheid te voorkomen. Zie de Serverconfiguratieoptie Configureer de jaarafsluiting met twee cijfers voor informatie over jaartallen met twee cijfers.
Return Type
nvarchar
Return Value
- Elk datadeel en de afkortingen ervan retourneren dezelfde waarde.
De return value is afhankelijk van de taalomgeving die is ingesteld met SET LANGUAGE, en van de Serverconfiguratieoptie Configureer de standaardtaal van de login. De returnwaarde hangt af van SET DATEFORMAT indien datum een string literal is van sommige formats. SET DATEFORMAT verandert de return waarde niet wanneer de datum een kolom expressie is van een datum of tijd data type.
Wanneer de datum parameter een datum data type argument heeft, hangt de return waarde af van de instelling gespecificeerd door SET DATEFIRST.
TZoffset datepart Argument
Als het datepart argument TZoffset (tz) is en het datum argument heeft geen tijdzone offset, DATEADD
retourneert 0.
smalldatetime date Argument
Wanneer datum smalldatetime is, geeft DATENAME
seconden als 00 terug.
Standaard geretourneerd voor een datadeel dat niet in het date-argument staat
Als het gegevenstype van het date-argument niet het gespecificeerde datadeel heeft, retourneert DATENAME
de standaard voor dat datadeel alleen als het date-argument een letterlijke .
Bijv. het standaard jaar-maand-dag voor elk date-gegevenstype is 1900-01-01. Dit statement heeft date part argumenten voor datepart, een time argument voor date, 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 date is gespecificeerd als een variabele of tabel kolom, en het datatype voor die variabele of kolom heeft niet de gespecificeerde datepart, DATENAME
zal fout 9810 retourneren. In dit voorbeeld heeft variabele @t een gegevenstype tijd. Het voorbeeld mislukt omdat het datadeel jaar ongeldig is voor het gegevenstype tijd:
DECLARE @t time = '12:10:30.123'; SELECT DATENAME(year, @t);
Opmerkingen
Gebruik DATENAME
in de volgende clausules:
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
In SQL Server worden string-literals door DATENAME impliciet als een datetime2-type gecast. Met andere woorden, DATENAME
ondersteunt het formaat YDM niet wanneer de datum als een string wordt doorgegeven. U moet de string expliciet omzetten naar een datetime of smalldatetime type om het YDM formaat te gebruiken.
Voorbeelden
Dit voorbeeld geeft de datumdelen voor de opgegeven datum. Vervang een datagedeelde waarde uit de tabel voor het datepart
argument in het SELECT statement:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Hier ziet u de resultaatverzameling.
datepart | Return value |
---|---|
year, yyyy, yy | 2007 |
kwartaal, qq, q | 4 |
month, mm, m | oktober |
dag van het jaar, dy, y | 303 |
dag, dd, d | 30 |
week, wk, ww | 44 |
weekdag, dw | dinsdag |
uur, hh | 12 |
minuut, n | 15 |
seconde, 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 Parallel Data Warehouse
Dit voorbeeld geeft de datumdelen voor de opgegeven datum. Vervang een datagedeelde waarde uit de tabel voor het datepart
argument in het SELECT statement:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Hier is de resultatenset.
datepart | Return value |
---|---|
year, yyyy, yy | 2007 |
kwartaal, qq, q | 4 |
month, mm, m | oktober |
dag van het jaar, dy, y | 303 |
dag, dd, d | 30 |
week, wk, ww | 44 |
weekdag, dw | dinsdag |
uur, hh | 12 |
minuut, n | 15 |
seconde, 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 CONVERT (Transact-SQL)