SET DATEFIRST (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Mengatur hari pertama dalam seminggu ke angka dari 1 hingga 7.
Untuk gambaran umum semua jenis dan fungsi data tanggal dan waktu Transact-SQL, lihat Jenis dan Fungsi Data Tanggal dan Waktu (Transact-SQL).
Sintaks
Sintaks untuk SQL Server dan Azure SQL Database
SET DATEFIRST { number | @number_var }
Sintaks untuk Azure Synapse Analytics dan Gudang Data Paralel
SET DATEFIRST 7 ;
Argumen
angka | @number_var
Adalah bilangan bulat yang menunjukkan hari pertama dalam seminggu. Ini bisa menjadi salah satu nilai berikut.
Nilai | Hari pertama dalam seminggu adalah |
---|---|
1 |
Senin |
2 |
Selasa |
3 |
Rabu |
4 |
Kamis |
5 |
Jumat |
6 |
Sabtu |
7 (default, Bahasa Inggris A.S. ) |
Hari Minggu |
Keterangan
Untuk melihat pengaturan SET DATEFIRST saat ini, gunakan fungsi @@DATEFIRST .
Pengaturan SET DATEFIRST diatur pada waktu eksekusi atau eksekusi dan bukan pada waktu penguraian.
Menentukan SET DATEFIRST tidak berpengaruh pada DATEDIFF. DATEDIFF selalu menggunakan Hari Minggu sebagai hari pertama dalam seminggu untuk memastikan fungsinya deterministik.
Seperti semua Pernyataan SET, SET DATEFIRST memengaruhi sesi saat ini.
Izin
Memerlukan keanggotaan dalam peran publik .
Contoh
Contoh berikut menampilkan hari dalam seminggu untuk nilai tanggal dan memperlihatkan efek mengubah DATEFIRST
pengaturan.
-- SET DATEFIRST to U.S. English default value of 7.
SET DATEFIRST 7;
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate
,DATEPART(dw, '1999-1-1') AS DayOfWeek;
-- January 1, 1999 is a Friday. Because the U.S. English default
-- specifies Sunday as the first day of the week, DATEPART of 1999-1-1
-- (Friday) yields a value of 6, because Friday is the sixth day of the
-- week when you start with Sunday as day 1.
SET DATEFIRST 3;
-- Because Wednesday is now considered the first day of the week,
-- DATEPART now shows that 1999-1-1 (a Friday) is the third day of the
-- week. The following DATEPART function should return a value of 3.
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate
,DATEPART(dw, '1999-1-1') AS DayOfWeek;
GO