- 29.07.2017
- 3 minuuttia luettavaa
-
- c
- j
- r
- M
- M
-
+9
Käytetään: SQL Server (kaikki tuetut versiot) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Tämä funktio palauttaa merkkijonon, joka edustaa määritetyn päivämäärän määriteltyä päivämäärän osaa.
Katso yleiskatsauksen kaikista Transact-SQL:n päivämäärän ja kellonajan tietotyypeistä ja funktioista kohdasta Päivämäärän ja kellonajan tietotyypit ja -funktiot (Transact-SQL).
Transact-SQL-syntaksikonventiot
Syntaksi
DATENAME ( datepart , date )
Huomautus
Katso SQL Server 2014:n ja sitä aikaisempien versioiden Transact-SQL-syntaksia kohdasta Aiempien versioiden dokumentaatio.
Argumentit
Datan osa
Kohtainen päiväysargumentin osa, joka palautetaan DATENAME
. Tässä taulukossa luetellaan kaikki kelvolliset datepart-argumentit.
Huomautus
DATENAME
ei hyväksy käyttäjän määrittelemien muuttujien vastineita datepart-argumenteille.
datepart | Lyhenteet | vuosi | vvv, yyyy |
---|---|
neljännes | qq, q |
kuukausi | mm, m |
vuotispäivä | dy, y | päivä | dd, d | viikko | wk, ww | viikonpäivä | dw, w |
tunti | hh | minuutti | mi, n | sekunti | ss, s |
millisekunti | ms |
mikrosekunti | mcs |
nanosekunti | ns |
TZoffset | tz |
ISO_WEEK | ISOWK, ISOWW |
date
Lauseke, joka voi johtaa johonkin seuraavista tietotyypeistä:
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- malldatetime
- time
Datan osalta DATENAME
hyväksyy sarakkeen lausekkeen, lausekkeen, merkkijonon kirjainjonon (string literaali) tai käyttäjän määrittelemän muuttujan. Käytä nelinumeroisia vuosilukuja epäselvyysongelmien välttämiseksi. Lisätietoja kaksinumeroisista vuosiluvuista on kohdassa Configure the two digit year cutoff Server Configuration Option (Määritä kaksinumeroisen vuosiluvun katkaisu palvelimen määritysvaihtoehto).
Return Type (Palautustyyppi)
nvarchar
Return Value (Palautusarvo)
- Jokainen päiväysosio ja sen lyhenteet palauttavat saman arvon.
Palautusarvo määräytyy kieliympäristön mukaan, joka asetetaan SET LANGUAGE -käytön avulla, sekä sisäänkirjautumisvaihtoehto Configure the default language (Määritä oletusarvoinen kieli) -valinnan mukaan. Palautusarvo riippuu SET DATEFORMAT -asetuksesta, jos päivämäärä on joidenkin formaattien merkkijonoliiteri. SET DATEFORMAT ei muuta palautusarvoa, jos päivämäärä on päivämäärä- tai aikatietotyypin sarakelause.
Kun päivämääräparametrilla on päivämäärätietotyyppi-argumentti, palautusarvo riippuu SET DATEFIRST -asetuksella määritetystä asetuksesta.
TZoffset datepart-argumentti
Jos datepart-argumentti on TZoffset (tz) ja päivämäärän argumenttina ei ole aikavyöhykeoffsetia, DATEADD
palauttaa 0.
smalldatetime date Argumentti
Kun date on smalldatetime, DATENAME
palauttaa sekunnit muodossa 00.
Palautetaan oletusarvo sellaiselle päivämääräosalle, joka ei ole date-argumentissa
Jos date-argumentin tietotyypissä ei ole määriteltyä päivämääräosaa, DATENAME
palauttaa oletusarvon kyseiselle päivämääräosalle vain, jos date-argumentissa on kirjainlyhenne .
Esimerkiksi oletusarvo vuosi-kuukausi-päivä mille tahansa date-tietotyypille on 1900-01-01. Tässä lausekkeessa on datepart-argumentit datepartille ja time-argumentti päivämäärälle, ja DATENAME
palauttaa 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');
Jos päivämäärä on määritetty muuttujaksi tai taulukon sarakkeeksi ja kyseisen muuttujan tai sarakkeen tietotyypillä ei ole määritettyä datepartia, DATENAME
palauttaa virheen 9810. Tässä esimerkissä muuttujalla @t on tietotyyppi time. Esimerkki epäonnistuu, koska päivämäärän osa vuosi on virheellinen aikatietotyypille:
DECLARE @t time = '12:10:30.123'; SELECT DATENAME(year, @t);
Huomautuksia
Käytä DATENAME
seuraavissa lausekkeissa:
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
SQL Serverissä DATENAME heittää merkkijonokirjaimet epäsuorasti datetime2-tyypiksi. Toisin sanoen DATENAME
ei tue muotoa YDM, kun päivämäärä välitetään merkkijonona. Sinun on nimenomaisesti valettava merkkijono datetime- tai smalldatetime-tyypiksi, jotta voit käyttää YDM-muotoa.
Esimerkkejä
Tämä esimerkki palauttaa määritetyn päivämäärän päivämääräosat. Korvaa SELECT-lauseen datepart
-argumentti taulukon päivämääräosien arvolla:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Tässä on tulosjoukko.
datepart | Palautusarvo | ||
---|---|---|---|
vuosi, yyyy, yy | 2007 | ||
neljännesvuosi, qq, q | 4 | kuukausi, mm, m | October |
dayofyear, dy, y | 303 | ||
day, dd, d | 30 | ||
week, wk, ww | 44 | ||
weekday, dw | tiistai | ||
tunti, hh | 12 | ||
minuutti, n | 15 | ||
sekunti, ss, s | 32 | ||
miljoonasekunti, ms | 123 | ||
mikrosekunti, mcs | 123456 | ||
nanosekunti, ns | 123456700 | ||
TZoffset, tz | +05:10 | ||
ISO_WEEK, ISOWK, ISOWW | 44 |
Azure Synapse Analytics and Parallel Data Warehouse
Tämä esimerkki palauttaa päivämäärän osat määritetylle päivälle. Korvaa SELECT-lauseen datepart
-argumentti taulukon päivämääräosien arvolla:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Tässä on tulosjoukko.
datepart | Palautusarvo | ||
---|---|---|---|
vuosi, yyyy, yy | 2007 | ||
neljännesvuosi, qq, q | 4 | kk, mm, m | October |
dayofyear, dy, y | 303 | ||
day, dd, d | 30 | ||
week, wk, ww | 44 | ||
weekday, dw | tiistai | ||
tunti, hh | 12 | ||
minuutti, n | 15 | ||
sekunti, ss, s | 32 | ||
miljoonasekunti, ms | 123 | ||
mikrosekunti, mcs | 123456 | ||
nanosekunti, ns | 123456700 | ||
TZoffset, tz | +05:10 | ||
ISO_WEEK, ISOWK, ISOWW | 44 |
See also
CAST ja CONVERT (Transact-SQL)
.