SQL - @@DATEFIRST 函式



SQL 的@@DATEFIRST函式用於檢索由SET DATEFIRST設定的一週的第一天。SET DATEFIRST用於設定一週的第一天。第一天引數(n)使用1到7之間的數字之一設定,其中每個數字都對映到一週中的某一天。

日期數字如下:

  • 星期一 - 1
  • 星期二 - 2
  • 星期三 - 3
  • 星期四 - 4
  • 星期五 - 5
  • 星期六 - 6
  • 星期日 - 7

語法

以下是SQL @@DATEFIRST函式的語法:

@@DATEFIRST

引數

此函式不接受任何引數。

示例

在下面的示例中,我們嘗試將一週的第一天值設定為5,即星期五:

注意 - SET DATAFIRST n 指定一週的第一天(星期一、星期二、星期三等)。n 的值可以是 1 到 7。

SQL> SET DATEFIRST 5; -- (Friday)

SELECT @@DATEFIRST AS FIRST_DAY;

輸出

如果執行上述查詢,則結果如下:

+------------+
| FIRST_DAY  |
+------------+
| 5          |
+------------+

示例

語言的設定會影響字元字串的解釋,因為SQL Server會將這些字串轉換為日期值以進行資料庫儲存。

  • 它會影響資料庫中儲存的日期值的顯示。
  • 它不會影響日期資料的儲存格式。

在這裡,我們嘗試使用以下查詢將語言設定為義大利語

SQL> SET LANGUAGE Italian;  
SELECT @@DATEFIRST AS RESULT;  

輸出

執行上述查詢後,將獲得如下輸出:

+----------+
| RESULT   |
+----------+
| 1        |
+----------+

示例

在這裡,我們嘗試使用以下查詢將語言設定為us_english

SQL> SET LANGUAGE us_english;  
SELECT @@DATEFIRST AS RESULT;  

輸出

執行上述查詢後,將顯示如下輸出:

+---------+
| RESULT  |
+---------+
| 7       |
+---------+

示例

在這裡,我們嘗試將一週的第一天值設定為7,即星期日,並假設當前日期TODAY是星期二。

下面的SELECT語句返回DATEFIRST值和當前一週的日期數字。

SQL> SET DATEFIRST 7;
SELECT @@DATEFIRST AS 'FIRST DAY';

SELECT GETDATE() as 'TODAY_DATE', DATEPART(dw, SYSDATETIME()) AS 'TODAY';

輸出

如果我們執行程式,則結果如下:

+-------------+
| FIRST_DAY   |
+-------------+
| 7           |
+-------------+

+---------------------------+---------+
| TODAY_DATE                | TODAY   |
+---------------------------+---------+
| 2023-02-21 14:07:42.010   | 3       |
+---------------------------+---------+
sql-date-functions.htm
廣告