Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Denna funktion returnerar en teckensträng som representerar det angivna datumet och delen av det angivna datumet.
Se Datatyper och funktioner för datum och tid (Transact-SQL) för en översikt över alla datatyper och funktioner för Transact-SQL-datum och tid.
Transact-SQL syntaxkonventioner
Syntax
DATENAME ( datepart , date )
Arguments
datepart
Den specifika delen av datumargumentet som DATENAME kommer att återkomma. I den här tabellen visas alla giltiga datepart-argument .
Anmärkning
DATENAME accepterar inte användardefinierade variabelekvivalenter för datepart-argumenten .
| datepart | Abbreviations |
|---|---|
| år | yyy, yyyyy |
| fjärdedel | qq, q |
| månad | mm, m |
| dayofyear | dy, y |
| dag | dd, d |
| vecka | WK, WW |
| vardag | dw, w |
| timme | hh |
| minut | mi, n |
| andra | ss, s |
| millisekund | Ms |
| mikrosekund | Mcs |
| nanosekund | Ns |
| TZoffset | tz |
| ISO_WEEK | ISOWK, ISOWW |
date
Ett uttryck som kan lösas till någon av följande datatyper:
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- time
För datumDATENAME accepterar ett kolumnuttryck, uttryck, strängliteral eller användardefinierad variabel. Använd fyrsiffriga år för att undvika tvetydighetsproblem. Mer information om tvåsiffriga år finns i Konfigurera det tvåsiffriga alternativet för serverkonfiguration .
Returtyp
nvarchar
Returvärde
- Varje datumdel och dess förkortningar returnerar samma värde.
Returvärdet beror på språkmiljön som sätts av att använda SET LANGUAGE, och av alternativet Configure the default language Server Configuration (konfiguration) för inloggningen. Returvärdet beror på SET DATEFORMAT om datum är en strängbokstav av vissa format. SET DATEFORMAT ändrar inte returvärdet när datumet är en kolumnuttryck för en datum- eller tiddatatyp.
När datumparametern har ett datumdatatyp-argument beror returvärdet på inställningen som anges av SET DATEFIRST.
TZoffset datepart Argument
Om datepart-argumentet är TZoffset (tz) och datumargumentet inte har någon tidszonsförskjutning, DATEADD returnerar 0.
smalldatetime-datum Argument
När datum är smalldatetime returnerar DATENAME sekunder som 00.
Standard Returnerad för en datepart som inte finns i dateargumentet
Om datatypen i datumargumentet inte har den angivna datumdelen, DATENAME kommer standarden för den datumdelen endast att returnera om datumargumentet har en literal .
Till exempel är standardår-månad-dag för vilken datumdatatyp som helst 1900-01-01. Detta påstående har datumdelsargument för datumdel, ett tidsargument för datum, och DATENAME returnerar 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');
Om datum anges som en variabel- eller tabellkolumn, och datatypen för den variabeln eller kolumnen inte har den angivna datumdelen, kommer felet 9810 att ge felmeddelandet. DATENAME I detta exempel har variabel @t en tidsdatatyp . Exemplet misslyckas eftersom datumet för delår är ogiltigt för tidsdatatypen :
DECLARE @t time = '12:10:30.123';
SELECT DATENAME(year, @t);
Anmärkningar
Använd DATENAME i följande satser:
- GRUPPERA EFTER
- HAVING
- SORTERA EFTER
- SELECT-lista <>
- WHERE
I SQL Server kastar DATENAME implicit strängliteraler som en datetime2-typ . Med andra ord DATENAME stöder inte formatet YDM när datumet skickas som en sträng. Du måste uttryckligen omvandla strängen till en datetime - eller smalldatetime-typ för att använda YDM-formatet.
Examples
Detta exempel returnerar datumdelarna för det angivna datumet. Byt ut ett datepart-värde från tabellen för argumentet datepart i SELECT-satsen:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Här är resultatet.
| datepart | Returvärde |
|---|---|
| år, jjj, jæ | 2007 |
| Kvart, qq, q | 4 |
| månad, mm, m | Oktober |
| Årets dag, dy, y | 303 |
| Dag, DD, D | 30 |
| vecka, vecka, vecka | 44 |
| vardag, DW | Tisdag |
| timme, hh | 12 |
| minut, n | 15 |
| För det andra, SS, s | 32 |
| millisekund, ms | 123 |
| Microsecond, MCS | 123456 |
| nanosekund, ns | 123456700 |
| TZoffset, tz | +05:10 |
| ISO_WEEK, ISOWK, ISOWW | 44 |
Azure Synapse Analytics and Analytics Platform System (PDW)
Detta exempel returnerar datumdelarna för det angivna datumet. Byt ut ett datepart-värde från tabellen för argumentet datepart i SELECT-satsen:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Här är resultatet.
| datepart | Returvärde |
|---|---|
| år, jjj, jæ | 2007 |
| Kvart, qq, q | 4 |
| månad, mm, m | Oktober |
| Årets dag, dy, y | 303 |
| Dag, DD, D | 30 |
| vecka, vecka, vecka | 44 |
| vardag, DW | Tisdag |
| timme, hh | 12 |
| minut, n | 15 |
| För det andra, SS, s | 32 |
| millisekund, ms | 123 |
| Microsecond, MCS | 123456 |
| nanosekund, ns | 123456700 |
| TZoffset, tz | +05:10 |
| ISO_WEEK, ISOWK, ISOWW | 44 |