
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表格
- SQL - 建立表格
- SQL - 顯示錶格
- SQL - 重命名錶格
- SQL - 截斷表格
- SQL - 克隆表格
- SQL - 臨時表格
- SQL - 修改表格
- SQL - 刪除表格
- SQL - 刪除表格
- SQL - 約束
- SQL 查詢
- SQL - 插入查詢
- SQL - 選擇查詢
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查詢
- SQL - 刪除查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY, ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - 刪除連線
- SQL - 更新連線
- SQL - 左連線 vs 右連線
- SQL - Union vs Join
- SQL 鍵
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 複合鍵
- SQL - 備用鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 叢集索引
- SQL - 非叢集索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - Min & Max
- SQL - Null 函式
- SQL - 檢查約束
- SQL - 預設約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - Group By vs Order By
- SQL - IN vs EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問題和解答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - DATETIME2FROMPARTS() 函式
SQL 的DATETIME2FROMPARTS()函式用於從單個日期和時間段構造一個datetime2值。
此函式接受八個引數,例如年、月、日、時、分、秒和精度,並返回一個表示指定時間的datetime2值。
如果作為引數傳遞的值無效,則此函式將導致錯誤。
如果任何引數為 null,則它將返回結果為 null。
如果缺少任何引數,它將返回錯誤。
此函式主要用於當 datetime2 值的年、月、日、時、分、秒和小數秒有單獨的值時,並希望將其組合成單個 datetime2 值。
語法
以下是 SQL DATETIME2FROMPARTS()函式的語法:
DATETIME2FROMPARTS(year, month, day, hour, minute, seconds, fractions, precision)
引數
此函式接受八個引數。下面描述了相同的內容:
year - 指定 datetime2 值的年份段,以整數表示。
month - 指定 datetime2 值的月份段,以 1 到 12 之間的整數表示。
day - 指定 datetime2 值的日期段,以 1 到 31 之間的整數表示。
hour - 指定 datetime2 值的小時段,以 0 到 23 之間的整數表示。
minute - 指定 datetime2 值的分鐘段,以 0 到 59 之間的整數表示。
seconds - 指定 datetime2 值的秒段,以 0 到 59 之間的整數表示。
fractions - 指定 datetime2 值的小數部分,以 0 到 9999999 之間的整數表示。
precision - 指定要返回的 datetime2 值的精度。
示例
在以下示例中,我們嘗試使用以下查詢構造一個不帶秒小數的 datetime2 值:
SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10, 45, 0, 0) AS RESULT;
輸出
執行上述查詢後,輸出將顯示如下:
+---------------------+ | RESULT | +---------------------+ | 2023-02-20 06:10:45 | +---------------------+
示例
讓我們嘗試使用 SQL DATETIME2FROMPARTS()函式的小數和精度引數:
當分數值為 5 且精度值為 1 時,分數值表示 5/10 秒。
當分數值為 5 且精度值為 2 時,分數值表示 5/100 秒。
當分數值為 5 且精度值為 3 時,分數值表示 5/1000 秒。
SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10, 45, 5, 1) AS RESULT_1; SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10, 45, 5, 2) AS RESULT_2; SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10, 45, 5, 3) AS RESULT_3;
輸出
如果我們執行程式,則結果將如下所示:
+-----------------------+ | RESULT | +-----------------------+ | 2023-02-20 06:10:45.5 | +-----------------------+ +------------------------+ | RESULT | +------------------------+ | 2023-02-20 06:10:45.05 | +------------------------+ +-------------------------+ | RESULT | +-------------------------+ | 2023-02-20 06:10:45.005 | +-------------------------+
示例
在這裡,我們為函式的任何引數提供無效值,這會導致錯誤。
SQL> SELECT DATETIME2FROMPARTS(2023, 16, 45, 29, 76, 88, 5, 1) AS RESULT;
輸出
當我們執行上述查詢時,輸出將獲得如下所示:
Cannot construct data type datetime2, some of the arguments have values which are not valid.
示例
如果我們將函式的任何引數提供為null,則該函式將返回 null。
SQL> SELECT DATETIME2FROMPARTS(2023, null, null, null, 34, 30, 5, 1) AS RESULT;
輸出
當我們執行上述查詢時,輸出將獲得如下所示:
+--------+ | RESULT | +--------+ | NULL | +--------+
示例
我們需要提供函式的所有五個引數。如果我們不提供它,則函式將導致錯誤。
SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10) AS RESULT;
輸出
如果我們執行上述查詢,則結果將如下所示:
The datetime2fromparts function requires 8 argument(s).
示例
假設我們在 SQL 資料庫中使用 CREATE 語句建立了一個名為 STUDENTS 的表,如下面的查詢所示:
SQL> CREATE TABLE STUDENTS(ID INT NOT NULL, NAME VARCHAR (200) NOT NULL, YEARS VARCHAR (200) NOT NULL, MONTHS VARCHAR (200) NOT NULL, DAYS VARCHAR (200) NOT NULL, HOURS VARCHAR (200) NOT NULL, MINUTES VARCHAR (200) NOT NULL, SECONDS VARCHAR (200) NOT NULL);
現在,讓我們使用 INSERT 語句在 STUDENTS 表中插入一些記錄,如下面的查詢所示:
SQL> INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(1, 'Dhruv', '2000', '02', '01', '14', '30', '00'); INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(2, 'Arjun', '2001', '05', '20', '02', '34', '45'); INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(3, 'Dev', '2000', '05', '25', '05', '56', '45'); INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(4, 'Riya', '2003', '01', '10', '17', '21', '23'); INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(5, 'Aarohi','1999', '12', '20', '23', '36', '54'); INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(6, 'Lisa', '2004', '07', '17', '10', '46', '13'); INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(7, 'Roy', '2003', '09', '19', '04', '30', '00');
我們可以使用以下查詢驗證表是否已建立:
SQL> SELECT * FROM STUDENTS
表 STUDENTS 已成功在 SQL 資料庫中建立。
+----+-------+-------+--------+------+-------+---------+---------+ | ID | NAME | YEARS | MONTHS | DAYS | HOURS | MINUTES | SECONDS | +----+-------+-------+--------+------+-------+---------+---------+ | 1 | Dhruv | 2000 | 02 | 01 | 14 | 30 | 00 | | 2 | Arjun | 2001 | 05 | 20 | 02 | 34 | 45 | | 3 | Dev | 2000 | 05 | 25 | 05 | 56 | 45 | | 4 | Riya | 2003 | 01 | 10 | 17 | 21 | 23 | | 5 | Aarohi| 1999 | 12 | 20 | 23 | 36 | 54 | | 6 | Lisa | 2004 | 07 | 17 | 10 | 46 | 13 | | 7 | Roy | 2003 | 09 | 19 | 04 | 30 | 00 | +----+-------+-------+--------+------+-------+---------+---------+
在這裡,我們連線所有學生的 datetime2 值以使用以下查詢檢索學生的出生日期和時間:
SQL> SELECT NAME, DATETIME2FROMPARTS(YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS, 0, 2) AS STUDENTS_BIRTH_DATE_AND_TIME FROM STUDENTS;
輸出
當我們執行上述查詢時,輸出將獲得如下所示:
+--------+------------------------------+ | NAME | STUDENTS_BIRTH_DATE_AND_TIME | +--------+------------------------------+ | Dhruv | 2000-02-01 14:30:00.00 | | Arjun | 2001-05-20 02:34:45.00 | | Dev | 2000-05-25 05:56:45.00 | | Riya | 2003-01-10 17:21:23.00 | | Aarohi | 1999-12-20 23:36:54.00 | | Lisa | 2004-07-17 10:46:13.00 | | Roy | 2003-09-19 04:30:00.00 | +--------+------------------------------+