SQL Serverissä T-SQL DATENAME()-funktio palauttaa merkkijonon, joka edustaa määritetyn päivämäärän määritettyä päivämääräosaa. Voit esimerkiksi syöttää 2021-01-07 ja saada SQL Serverin palauttamaan vain kuukauden osan (January).

Toiminnon DATENAME() palautustyyppi on nvarchar.

Alhaalla on esimerkkejä.

Syntaksi

Syntaksi DATENAME() menee näin:

DATENAME ( datepart , date )

Jossa datepart on se osa date:stä (päivämäärän tai kellonajan arvo), josta palautetaan merkkijono.

Esimerkki 1

Tässä on perusesimerkki, jossa palautan päivämäärän kuukauden osan.

SELECT DATENAME(month, '2021-01-07') AS Result;

Tulos:

+----------+| Result ||----------|| January |+----------+

Esimerkki 2

Tässä esimerkissä määrittelen päivämäärän muuttujaan, sitten käytän useita DATEPART()-instansseja DATEPART() hakiessani päivämäärän eri osia.

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';SELECT DATENAME(year, @date) AS Year, DATENAME(quarter, @date) AS Quarter, DATENAME(month, @date) AS Month, DATENAME(dayofyear, @date) AS 'Day of Year', DATENAME(day, @date) AS Day, DATENAME(week, @date) AS Week, DATENAME(weekday, @date) AS Weekday;

Tulos:

+--------+-----------+---------+---------------+-------+--------+-----------+| Year | Quarter | Month | Day of Year | Day | Week | Weekday ||--------+-----------+---------+---------------+-------+--------+-----------|| 2018 | 2 | June | 153 | 2 | 22 | Saturday |+--------+-----------+---------+---------------+-------+--------+-----------+

Esimerkki 3

Voit myös hakea päivämäärän eri aikaosat.

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';SELECT DATENAME(hour, @date) AS Hour, DATENAME(minute, @date) AS Minute, DATENAME(second, @date) AS Second, DATENAME(millisecond, @date) AS Millsecond, DATENAME(microsecond, @date) AS Microsecond, DATENAME(nanosecond, @date) AS Nanosecond;

Tulos:

+--------+----------+----------+--------------+---------------+--------------+| Hour | Minute | Second | Millsecond | Microsecond | Nanosecond ||--------+----------+----------+--------------+---------------+--------------|| 8 | 24 | 14 | 311 | 311204 | 311204200 |+--------+----------+----------+--------------+---------------+--------------+

Esimerkki 4

Voit hakea myös päivämäärän TZoffset– ja ISO_WEEK-osat.

Esimerkki 4

Esimerkki 4

Tulos:

+--------+----------+----------+--------------+---------------+--------------+| Hour | Minute | Second | Millsecond | Microsecond | Nanosecond ||--------+----------+----------+--------------+---------------+--------------|| 8 | 24 | 14 | 311 | 311204 | 311204200 |+--------+----------+----------+--------------+---------------+--------------+

Esimerkki 4

Voit hakea myös päivämäärän TZoffset– ja ISO_WEEK-osat. ISO_WEEK-päivämääräosa viittaa ISO-viikkopäivämääräjärjestelmään (osa ISO 8601-standardia), joka on viikkojen numerointijärjestelmä.

DECLARE @date datetimeoffset = '2018-06-02 08:24:14.3112042 +08:00';SELECT DATENAME(TZoffset, @date) AS 'Time Zone Offset', DATENAME(ISO_WEEK, @date) AS 'ISO_WEEK';

Tulos:

+--------------------+------------+| Time Zone Offset | ISO_WEEK ||--------------------+------------|| +08:00 | 22 |+--------------------+------------+

Tässä esimerkissä asetin päivämäärän muotoon datetimeoffset, joka sisältää aikavyöhykeoffsetin. TZoffset palautetaan minuutteina.

DATENAME():n tulokset muistuttavat usein DATEPART():n tuloksia (koska useimmat päivämäärän osat ovat numeerisia). DATEPART() palauttaa kuitenkin kokonaisluvun merkkijonon sijaan. Siksi DATEPART() palauttaa kuukaudet (ja arkipäivän osan) numeerisessa muodossa (esim. 1 eikä January).

Lyhyen kuukauden nimen saaminen

Jos tarvitset kuukauden nimen, mutta lyhennetyssä, kolmikirjaimisessa lyhennemuodossaan (esimerkiksi Jan eikä January), tutustu artikkeliini 5 tapaa saada lyhyt kuukauden nimi päivämäärältä SQL Serverissä.

Vastaa

Sähköpostiosoitettasi ei julkaista.