
- 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 - INSERT 查詢
- SQL - SELECT 查詢
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - UPDATE 查詢
- SQL - DELETE 查詢
- 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 - 布林 (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 - INNER JOIN
- SQL - LEFT JOIN
- SQL - RIGHT JOIN
- SQL - CROSS JOIN
- SQL - FULL JOIN
- SQL - 自連線
- SQL - DELETE JOIN
- SQL - UPDATE JOIN
- SQL - LEFT JOIN vs RIGHT JOIN
- SQL - UNION vs JOIN
- SQL 鍵
- SQL - UNIQUE KEY
- SQL - PRIMARY KEY
- SQL - FOREIGN KEY
- SQL - 組合鍵
- SQL - 候選鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - UNIQUE 索引
- SQL - 聚簇索引
- SQL - 非聚簇索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - MIN & MAX
- SQL - NULL 函式
- SQL - CHECK 約束
- SQL - DEFAULT 約束
- 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 - SWITCHOFFSET() 函式
SQL 的SWITCHOFFSET()函式可用於返回已從儲存時區偏移量更改為給定新時區偏移量的datetimeoffset值。
與DATETIMEOFFSET相比,SWITCHOFFSET的功能有所不同。它根據兩個輸入(DATETIMEOFFSET值和目標時區偏移量)將源值的偏移量轉換為目標值。UTC值對於輸入和輸出都是相同的;您只需要將輸入值的偏移量從最初記錄它們的源偏移量切換到所需的目標偏移量。
語法
以下是SQL SWITCHOFFSET()函式的語法:
SWITCHOFFSET( expression, time_zone )
引數
此函式接受兩個引數,如下所述:
expression − 將解析為datetimeoffset值的表示式
time_zone − 時區偏移量或帶符號整數。
示例
在以下示例中,我們嘗試演示SWITCHOFFSET()函式:
SELECT SWITCHOFFSET( '2023-02-20', '+06:00' ) AS Result;
輸出
執行上述查詢時,將獲得如下輸出:
+------------------------------------+ | Result | +------------------------------------+ | 2023-02-20 06:00:00.0000000 +06:00 | +------------------------------------+
示例
這裡,我們將使用SWITCHOFFSET()函式的負值:
SELECT SWITCHOFFSET( '2023-02-20', '-06:00' ) AS Result;
輸出
查詢執行後,將生成如下所示的輸出:
+------------------------------------+ | Result | +------------------------------------+ | 2023-02-19 18:00:00.0000000 -06:00 | +------------------------------------+
示例
在以下示例中,我們將設定一個變數,使用DATETIMEOFFSET()為其分配日期,將SWITCHOFFSET()應用於該日期,並使用以下查詢將其與原始日期進行比較:
DECLARE @DATE datetimeoffset = '2023-02-19 18:00:00.0000000 -06:00'; SELECT @DATE AS 'Original Date', SWITCHOFFSET( @DATE, '+05:30' ) AS '+05:30';
輸出
執行上述查詢後,將顯示如下輸出:
+------------------------------------+------------------------------------+ | Original Date | +05:30 | +------------------------------------+------------------------------------+ | 2023-02-19 18:00:00.0000000 -06:00 | 2023-02-20 05:30:00.0000000 +05:30 | +------------------------------------+------------------------------------+
示例
這裡,我們使用的是DATETIMEOFFSET():
DECLARE @DATE AS DATETIMEOFFSET = '2023-02-20 04:10:00.0000000 +04:10', @TIMEZONE AS CHAR(6)= '-08:00'; SELECT SWITCHOFFSET(@DATE, @TIMEZONE) AS Result;
輸出
查詢執行後,將生成如下所示的輸出:
+------------------------------------+ | Result | +------------------------------------+ | 2023-02-19 16:00:00.0000000 -08:00 | +------------------------------------+
示例
在以下查詢中,我們將使用SYSDATETIMEOFFSET()函式生成當前日期/時間和偏移量:
SELECT SYSDATETIMEOFFSET() AS 'Current Date', SWITCHOFFSET( SYSDATETIMEOFFSET(), '+07:30' ) AS '+07:30';
輸出
上述查詢的輸出如下所示:
+------------------------------------+------------------------------------+ | Current Date | +07:30 | +------------------------------------+------------------------------------+ | 2023-02-20 16:03:59.8684429 +05:30 | 2023-02-20 18:03:59.8684429 +07:30 | +------------------------------------+------------------------------------+
示例
考慮另一個示例,我們使用SYSDATETIMEOFFSET()函式生成執行SQL Server的系統的當前日期和時間。這裡我們將新增負值:
SELECT SYSDATETIMEOFFSET() AS 'Current Date', SWITCHOFFSET( SYSDATETIMEOFFSET(), '-05:30' ) AS '-05:30';
輸出
查詢執行後,將生成如下所示的輸出:
+------------------------------------+------------------------------------+ | Current Date | -05:30 | +------------------------------------+------------------------------------+ | 2023-02-20 16:09:15.0193356 +05:30 | 2023-02-20 05:09:15.0193356 -05:30 | +------------------------------------+------------------------------------+
示例
在以下示例中,我們將使用整數表示時區偏移量而不是字串,並檢查查詢是否可以這樣做:
SELECT SWITCHOFFSET( '2023-02-20', 250 ) AS Result;
輸出
執行上述查詢後,將生成如下所示的輸出:
+------------------------------------+ | Result | +------------------------------------+ | 2023-02-20 04:10:00.0000000 +04:10 | +------------------------------------+
sql-date-functions.htm
廣告