- 29/07/2017
- 3 minutter at læse
-
- c
- j
- r
- M
- M
-
+9
Gælder for: SQL Server (alle understøttede versioner) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Denne funktion returnerer en tegnstreng, der repræsenterer den angivne datodel af den angivne dato.
Se Datatyper og -funktioner for dato og tid (Transact-SQL) for at få en oversigt over alle Transact-SQL-datatyper og -funktioner for dato og tid.
Konventioner for Transact-SQL-syntaks
Syntaks
DATENAME ( datepart , date )
Note
For at få vist Transact-SQL-syntaks for SQL Server 2014 og tidligere, se Dokumentation for tidligere versioner.
Argumenter
datepart
Den specifikke del af dataargumentet, som DATENAME
returnerer. Denne tabel indeholder en liste over alle gyldige datepart-argumenter.
Note
DATENAME
accepterer ikke brugerdefinerede variable ækvivalenter for datepart-argumenterne.
datepart | Abkortninger | år | åååååå, yyyy | kvartal | qq, q | måned | mm, m | dayofyear | dy, y | day | dd, d | week | wk, ww | weekday | dw, w | time | hh | minut | mi, n | sekund | ss, s |
---|---|
millisekund | ms | mikrosekund | mcs | nanosekunder | ns |
TZoffset | tz | ISO_WEEK | ISOWK, ISOWWW |
date
Et udtryk, der kan opløses til en af følgende datatyper:
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- smalldatetime
- time
For date, DATENAME
accepterer et kolonneudtryk, et udtryk, et stringliteral eller en brugerdefineret variabel. Brug firecifrede årstal for at undgå problemer med tvetydighed. Se Konfigurer den tocifrede årsgrænse Serverkonfigurationsindstilling for oplysninger om tocifrede årstal.
Returneringstype
nvarchar
Returneringsværdi
- Hver datodel og dens forkortelser returnerer den samme værdi.
Returneringsværdien afhænger af det sprogmiljø, der er indstillet ved hjælp af SET LANGUAGE, og af konfigurationen Konfigurer standardsproget Serverkonfigurationsindstilling for login. Returværdien afhænger af SET DATEFORMAT, hvis dato er en strengbogstav i nogle formater. SET DATEFORMAT ændrer ikke returværdien, hvis datoen er et kolonneudtryk af en dato- eller tidsdatatype.
Når dataparameteren har et datatypeargument, afhænger returværdien af den indstilling, der er angivet med SET DATEFIRST.
TZoffset datepart Argument
Hvis datepart-argumentet er TZoffset (tz), og dataargumentet ikke har nogen tidszoneforskydning, returnerer DATEADD
0.
smalldatetime date Argument
Når date er smalldatetime, returnerer DATENAME
sekunder som 00.
Formuleringer returneres for en datodel, der ikke er i date-argumentet
Hvis datatypen for date-argumentet ikke har den angivne datodel, returnerer DATENAME
kun standardværdien for denne datodel, hvis date-argumentet har en bogstavelig .
For eksempel er standardværdien år-måned-dag for enhver datatype for date 1900-01-01-01. Denne anvisning har datodelargumenter for datepart, et tidsargument for date, og DATENAME
returnerer 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');
Hvis dato er angivet som en variabel eller tabelkolonne, og datatypen for den pågældende variabel eller kolonne ikke har den angivne datepart, returnerer DATENAME
fejl 9810. I dette eksempel har variablen @t en datatype time. Eksemplet mislykkes, fordi datadelen år er ugyldig for datatypen tid:
DECLARE @t time = '12:10:30.123'; SELECT DATENAME(year, @t);
Remarks
Brug DATENAME
i følgende klausuler:
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
I SQL Server, DATENAME caster implicit strengliteraler som en datetime2-type. Med andre ord understøtter DATENAME
ikke formatet YDM, når datoen overføres som en streng. Du skal eksplicit kaste strengen til en datetime- eller smalldatetime-type for at bruge YDM-formatet.
Eksempler
Dette eksempel returnerer datodelene for den angivne dato. Erstat en datodelværdi fra tabellen for datepart
-argumentet i SELECT-anvisningen:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Her er resultatmængden.
datepart | Returneringsværdi | år, ååååå, ååå | 2007 | kvartal, qq, q | 4 | måned, mm, m | Oktober | årets dag, dy, y | 303 | dag, dd, d | 30 | uge, wk, ww | 44 | ugedag, dw | Tuesday | time, hh | 12 | minut, n | 15 | sekund, ss, s | 32 | millisekund, ms | 123 | mikrosekund, mcs | 123456 | nanosekund, ns | 123456700 | TZoffset, tz | +05:10 |
---|---|---|
ISO_WEEK, ISOWK, ISOWWW | 44 |
Azure Synapse Analytics and Parallel Data Warehouse
Dette eksempel returnerer datodelene for den angivne dato. Udskift en datodelværdi fra tabellen med en værdi for datepart
-argumentet i SELECT-anvisningen:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Her er resultatsættet.
datepart | Returneringsværdi | år, ååååå, åååå | 2007 | kvartal, qq, q | 4 | måned, mm, m | Oktober | årets dag, dy, y | 303 | dag, dd, d | 30 | uge, wk, ww | 44 | ugedag, dw | Tuesday | time, hh | 12 | minut, n | 15 | sekund, ss, s | 32 | millisekund, ms | 123 | mikrosekund, mcs | 123456 | nanosekund, ns | 123456700 | TZoffset, tz | +05:10 |
---|---|
ISO_WEEK, ISOWK, ISOWWW | 44 |
See also
CAST and CONVERT (Transact-SQL)