SET DATEFIRST (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Mengatur hari pertama dalam seminggu ke angka dari 1 sampai 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
-- Syntax for SQL Server and Azure SQL Database
SET DATEFIRST { number | @number_var }
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse
SET DATEFIRST 7 ;
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
Nomor | @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, 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.
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
