DATENAME (Transact-SQL)

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

.

Vastaa

Sähköpostiosoitettasi ei julkaista.