SET DATEFIRST (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform 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).

Konvensi sintaks 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 ;  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

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