DATENAME (Transact-SQL)
Berlaku untuk: SQL Server 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 (Transact-SQL) untuk gambaran umum semua jenis dan fungsi data tanggal dan waktu Transact-SQL.
Sintaks
DATENAME ( datepart , date )
Argumen
datepart
Bagian spesifik dari argumen tanggal yang DATENAME
akan ditampilkan. 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 dapat 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 tahun dua digit.
Jenis Hasil
nvarchar
Tampilkan Nilai
- Setiap datepart dan singkatannya mengembalikan nilai yang sama.
Nilai pengembalian tergantung 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 pengembalian saat tanggal adalah ekspresi kolom dari tipe data tanggal atau waktu.
Ketika parameter tanggal memiliki argumen jenis data tanggal, nilai pengembalian 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
Ketika 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 literal .
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:
- GROUP BY
- MEMILIKI
- ORDER BY
- DAFTAR SELECT <>
- WHERE
Di SQL Server, DATENAME secara implisit melemparkan 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 set hasilnya.
datepart | Nilai hasil |
---|---|
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 set hasilnya.
datepart | Nilai hasil |
---|---|
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 |