SET DATEFORMAT (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Mengatur urutan bagian tanggal bulan, hari, dan tahun untuk menginterpretasikan string karakter tanggal. String ini berjenis tanggal, smalldatetime, datetime, datetime2, atau datetimeoffset.
Untuk gambaran umum semua jenis dan fungsi data tanggal dan waktu Transact-SQL, lihat Jenis dan Fungsi Data Tanggal dan Waktu (Transact-SQL).
Sintaks
SET DATEFORMAT { format | @format_var }
Argumen
format | @format_var
Adalah urutan bagian tanggal. Parameter yang valid adalah mdy, dmy, ymd, ydm, myd, dan dym. Dapat berupa Unicode atau kumpulan karakter byte ganda (DBCS) yang dikonversi ke Unicode. Default bahasa Inggris A.S. adalah mdy. Untuk DATEFORMAT default dari semua bahasa dukungan, lihat sp_helplanguage (Transact-SQL).
Keterangan
DateFORMAT ydm tidak didukung untuk jenis data date, datetime2, dan datetimeoffset .
Pengaturan DATEFORMAT dapat menginterpretasikan string karakter secara berbeda untuk jenis data tanggal, tergantung pada format stringnya. Misalnya, interpretasi datetime dan smalldatetime mungkin tidak cocok dengan tanggal, datetime2, atau datetimeoffset. DATEFORMAT memengaruhi interpretasi string karakter saat dikonversi ke nilai tanggal untuk database. Ini tidak memengaruhi tampilan nilai tipe data tanggal, atau format penyimpanannya dalam database.
Beberapa format string karakter, misalnya ISO 8601, ditafsirkan secara independen dari pengaturan DATEFORMAT.
Pengaturan SET DATEFORMAT diatur pada waktu eksekusi atau eksekusi dan bukan pada waktu penguraian.
SET DATEFORMAT mengambil alih pengaturan format tanggal implisit DARI SET LANGUAGE.
Izin
Memerlukan keanggotaan dalam peran publik .
Contoh
Contoh berikut menggunakan string tanggal yang berbeda sebagai input dalam sesi dengan pengaturan yang sama DATEFORMAT
.
-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO
DECLARE @datevar DATETIME2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: 2008-12-31 09:01:01.123
SET DATEFORMAT dmy;
GO
DECLARE @datevar DATETIME2 = '12/31/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.
GO