DATENAME (Transact-SQL)

  • 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)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.