DATENAME (transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Fungsi ini mengembalikan string karakter yang mewakili bagian tanggal yang ditentukan dari tanggal yang ditentukan.
Lihat Jenis dan Fungsi Data Tanggal dan Waktu (SQL Transact) untuk gambaran umum semua jenis dan fungsi data tanggal dan waktu transact-SQL.
Sintaks
DATENAME ( datepart , date )
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
datepart
Bagian tertentu dari argumen tanggal yang DATENAME akan dikembalikan. Tabel ini mencantumkan semua argumen datepart yang valid.
Catatan
DATENAME tidak menerima variabel yang ditentukan pengguna yang setara untuk argumen datepart .
| datepart | Singkatan |
|---|---|
| tahun | yy, yyyy |
| kuartal | qq, q |
| bulan | mm, m |
| dayofyear | dy, y |
| hari | dd, d |
| minggu | wk, ww |
| hari kerja | dw, w |
| jam | hh |
| menit | mi, n |
| detik | ss, s |
| milidetik | ms |
| mikrosecond | Mcs |
| nanodetik | Ns |
| TZoffset | Tz |
| ISO_WEEK | ISOWK, ISOWW |
date
Ekspresi yang bisa mengatasi salah satu jenis data berikut:
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- time
Untuk tanggal, DATENAME akan menerima ekspresi kolom, ekspresi, string literal, atau variabel yang ditentukan pengguna. Gunakan empat digit tahun untuk menghindari masalah ambiguitas. Lihat Mengonfigurasi Opsi Konfigurasi Server cutoff dua digit tahun untuk informasi tentang dua digit tahun.
Jenis Hasil
nvarchar
Tampilkan Nilai
- Setiap datepart dan singkatannya mengembalikan nilai yang sama.
Nilai yang dikembalikan bergantung pada lingkungan bahasa yang ditetapkan dengan menggunakan SET LANGUAGE, dan dengan Opsi Konfigurasi Server bahasa default dari login. Nilai yang dikembalikan bergantung pada SET DATEFORMAT jika tanggal adalah literal string dari beberapa format. SET DATEFORMAT tidak mengubah nilai yang dikembalikan saat tanggal adalah ekspresi kolom dari jenis data tanggal atau waktu.
Ketika parameter tanggal memiliki argumen jenis data tanggal , nilai yang dikembalikan bergantung pada pengaturan yang ditentukan oleh SET DATEFIRST.
Argumen datepart TZoffset
Jika argumen datepart adalah TZoffset (tz) dan argumen tanggal tidak memiliki offset zona waktu, DATEADD mengembalikan 0.
Argumen tanggal smalldatetime
Saat tanggal adalah smalldatetime, DATENAME mengembalikan detik sebagai 00.
Default Dikembalikan untuk datepart Yang Tidak ada dalam argumen tanggal
Jika tipe data argumen tanggal tidak memiliki datepart yang ditentukan, DATENAME akan mengembalikan default untuk datepart tersebut hanya jika argumen tanggal memiliki harfiah .
Misalnya, hari-bulan-tahun default untuk jenis data tanggal apa pun adalah 1900-01-01. Pernyataan ini memiliki argumen bagian tanggal untuk datepart, argumen waktu untuk tanggal, dan DATENAME mengembalikan 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');
Jika tanggal ditentukan sebagai variabel atau kolom tabel, dan jenis data untuk variabel atau kolom tersebut tidak memiliki datepart yang ditentukan, DATENAME akan mengembalikan kesalahan 9810. Dalam contoh ini, variabel @t memiliki jenis data waktu . Contoh gagal karena tanggal bagian tahun tidak valid untuk jenis data waktu :
DECLARE @t time = '12:10:30.123';
SELECT DATENAME(year, @t);
Keterangan
Gunakan DATENAME dalam klausa berikut:
- KELOMPOKKAN MENURUT
- HAVING
- URUTKAN MENURUT
- DAFTAR SELECT <>
- WHERE
Dalam SQL Server, DATENAME secara implisit mentransmisikan literal string sebagai jenis datetime2. Dengan kata lain, DATENAME tidak mendukung format YDM saat tanggal diteruskan sebagai string. Anda harus secara eksplisit mentransmisikan string ke jenis datetime atau smalldatetime untuk menggunakan format YDM.
Contoh
Contoh ini mengembalikan bagian tanggal untuk tanggal yang ditentukan. Ganti nilai datepart dari tabel untuk datepart argumen dalam pernyataan SELECT:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Berikut adalah hasil yang ditetapkan.
| datepart | Mengembalikan nilai |
|---|---|
| tahun, yyyy, yy | 2007 |
| kuartal, qq, q | 4 |
| bulan, mm, m | Oktober |
| dayofyear, dy, y | 303 |
| hari, dd, d | 30 |
| minggu, wk, ww | 44 |
| hari kerja, dw | Selasa |
| jam, hh | 12 |
| menit, n | 15 |
| kedua, ss, s | 32 |
| milidetik, ms | 123 |
| microsecond, mcs | 123456 |
| nanodetik, ns | 123456700 |
| TZoffset, tz | +05:10 |
| ISO_WEEK, ISOWK, ISOWW | 44 |
Azure Synapse Analytics and Analytics Platform System (PDW)
Contoh ini mengembalikan bagian tanggal untuk tanggal yang ditentukan. Ganti nilai datepart dari tabel untuk datepart argumen dalam pernyataan SELECT:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Berikut adalah hasil yang ditetapkan.
| datepart | Mengembalikan nilai |
|---|---|
| tahun, yyyy, yy | 2007 |
| kuartal, qq, q | 4 |
| bulan, mm, m | Oktober |
| dayofyear, dy, y | 303 |
| hari, dd, d | 30 |
| minggu, wk, ww | 44 |
| hari kerja, dw | Selasa |
| jam, hh | 12 |
| menit, n | 15 |
| kedua, ss, s | 32 |
| milidetik, ms | 123 |
| microsecond, mcs | 123456 |
| nanodetik, ns | 123456700 |
| TZoffset, tz | +05:10 |
| ISO_WEEK, ISOWK, ISOWW | 44 |
