Di SQL Server, T-SQL DATENAME()
fungsi mengembalikan string karakter yang mewakili bagian tanggal yang ditentukan dari tanggal yang ditentukan . Misalnya, Anda dapat meneruskan 2021-01-07
dan minta SQL Server mengembalikan hanya bagian bulan (January
).
Jenis pengembalian untuk DATENAME()
adalah nvarchar .
Contoh di bawah.
Sintaks
DATENAME()
sintaksnya seperti ini:
DATENAME ( datepart , date )
Dimana datepart
adalah bagian dari date
(nilai tanggal atau waktu) yang akan menampilkan string karakter.
Contoh 1
Berikut adalah contoh dasar di mana saya mengembalikan komponen bulan dari tanggal.
SELECT DATENAME(month, '2021-01-07') AS Result;
Hasil:
+----------+ | Result | |----------| | January | +----------+
Contoh 2
Dalam contoh ini saya menetapkan tanggal ke variabel, lalu saya menggunakan beberapa contoh DATEPART()
untuk mengambil bagian yang berbeda dari tanggal tersebut.
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;
Hasil:
+--------+-----------+---------+---------------+-------+--------+-----------+ | Year | Quarter | Month | Day of Year | Day | Week | Weekday | |--------+-----------+---------+---------------+-------+--------+-----------| | 2018 | 2 | June | 153 | 2 | 22 | Saturday | +--------+-----------+---------+---------------+-------+--------+-----------+
Contoh 3
Anda juga dapat mengambil berbagai bagian waktu dari tanggal.
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;
Hasil:
+--------+----------+----------+--------------+---------------+--------------+ | Hour | Minute | Second | Millsecond | Microsecond | Nanosecond | |--------+----------+----------+--------------+---------------+--------------| | 8 | 24 | 14 | 311 | 311204 | 311204200 | +--------+----------+----------+--------------+---------------+--------------+
Contoh 4
Anda juga dapat mengambil TZoffset
dan ISO_WEEK
bagian tanggal.
TZoffset
dikembalikan sebagai jumlah menit (ditandatangani). ISO_WEEK
datepart mengacu pada sistem tanggal minggu ISO (bagian dari standar ISO 8601) yang merupakan sistem penomoran untuk minggu.
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';
Hasil:
+--------------------+------------+ | Time Zone Offset | ISO_WEEK | |--------------------+------------| | +08:00 | 22 | +--------------------+------------+
Dalam contoh ini, saya menyetel tanggal ke datetimeoffset
format, yang mencakup offset zona waktu. TZoffset
dikembalikan dalam hitungan menit.
Hasil DATENAME()
akan sering menyerupai hasil dari DATEPART()
(karena sebagian besar bagian tanggal berupa angka). Namun, DATEPART()
mengembalikan integer sebagai lawan dari string karakter. Oleh karena itu DATEPART()
akan mengembalikan bulan (dan komponen hari kerja) dalam bentuk numerik (mis. 1
bukannya January
).
Mendapatkan Nama Bulan Pendek
Jika Anda memerlukan nama bulan, tetapi dalam bentuk singkatan 3 huruf (misalnya, Jan
bukannya January
), lihat artikel saya 5 Cara Mendapatkan Nama Bulan Pendek dari Tanggal di SQL Server.