- 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 与 UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接与右连接
- SQL - Union 与 Join
- SQL 键
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 备选键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 集群索引
- SQL - 非集群索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - Min & Max
- SQL - 空值函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复数据
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - Group By 与 Order By
- SQL - IN 与 EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - TODATETIMEOFFSET() 函数
SQL 的TODATETIMEOFFSET() 函数是一个日期和时间函数,它使用用户指定的 datetime2 和时区返回一个 datetimeoffset 值。
TODATETIMEOFFSET 函数操作两个输入 - 目标时区偏移量和非偏移日期和时间值,它简单地将两者组合以生成 DATETIMEOFFSET 值。此函数的输出是数据类型 datetimeoffset 的值。
我们可以以分钟或小时的格式提供时区。如果以分钟提供,则使用整数 (-4);如果以小时提供,则使用字符串 ('+06.00')。时区的范围为 +14 到 -14(小时)。
语法
以下是 SQL TODATETIMEOFFSET() 函数的语法 -
TODATETIMEOFFSET(expression,time_zone)
参数
此函数仅接受两个参数。下面描述了相同内容 -
expression - 将解析为 datetime2 值。
time_zone - 它是一个时区偏移量或从 +14 到 -14 的带符号整数范围。
示例
在以下示例中,我们将使用以下查询更改分钟的时区偏移量 -
在此示例中,我们将当前时区更改为 -150 分钟;
SELECT TODATETIMEOFFSET (GETDATE(), -150) AS Result;
输出
当我们执行上述查询时,将获得如下输出 -
+--------------------------------+ | Result | +--------------------------------+ | 2023-02-20 12:52:55.827 -02:30 | +--------------------------------+
示例
让我们看看另一种情况,我们将使用以下查询以正数分钟更改时区 -
SELECT TODATETIMEOFFSET (GETDATE(), 360) AS Result;
输出
当查询执行时,它将生成如下所示的输出 -
+--------------------------------+ | Result | +--------------------------------+ | 2023-02-20 15:22:33.533 +06:00 | +--------------------------------+
示例
在以下示例中,我们使用显式设置变量为 datetime2 值,并将TODATETIMEOFFSET() 应用于该值,并使用以下查询比较这两个值 -
DECLARE @DATE datetime2 = '2023-02-20 02:33:18.0000000'; SELECT @DATE AS 'Original Date', TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';
输出
执行上述查询后,将显示如下输出 -
+-----------------------------+-------------------------------------+ | Original Date | +06:00 | +-----------------------------+-------------------------------------+ | 2023-02-20 02:33:18.0000000 | 2023-02-20 02:33:18.0000000 +06:00 | +-----------------------------+-------------------------------------+
示例
让我们看看另一个示例,我们将使用以下查询将时区偏移量设置为整数 -
SELECT TODATETIMEOFFSET( '2023-02-20 02:33:18.0000000', -150 ) AS Result;
输出
上述查询的输出如下所示 -
+------------------------------------+ | Result | +------------------------------------+ | 2023-02-20 02:33:18.0000000 -02:30 | +------------------------------------+
示例
让我们看看以下示例,其中我们使用SYSDATETIMEOFFSET() 函数作为日期表达式,它生成 SQL Server 运行的系统的当前日期/时间,使用以下查询 -
SELECT SYSDATETIMEOFFSET() AS 'Current Date', TODATETIMEOFFSET( SYSDATETIMEOFFSET(), '+06:00' ) AS '+06:00';
输出
当查询执行时,它将生成如下所示的输出 -
+------------------------------------+------------------------------------+ | Current Date | +06:00 | +------------------------------------+------------------------------------+ | 2023-02-20 14:50:06.8050290 +05:30 | 2023-02-20 14:50:06.8050290 +06:00 | +------------------------------------+------------------------------------+
示例
在以下示例中,我们使用DATETIMEOFFSET() 函数并将使用以下查询检索偏移值使用 TODATETIMEOFFSET() 函数 -
DECLARE @DATE DATETIMEOFFSET = '2023-02-20 14:50:06.8050290 +04:30'; SELECT @DATE AS 'Original Date', TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';
输出
运行上述查询后,它将生成如下所示的输出 -
+------------------------------------+------------------------------------+ | Original Date | +06:00 | +------------------------------------+------------------------------------+ | 2023-02-20 14:50:06.8050290 +04:30 | 2023-02-20 14:50:06.8050290 +06:00 | +------------------------------------+------------------------------------+
示例
在以下示例中,我们使用DATETIMEOFFSET() 函数并将使用以下查询检索偏移值使用 TODATETIMEOFFSET() 函数 -
DECLARE @DATE DATETIMEOFFSET = '2023-02-20 14:50:06.8050290 +04:30'; SELECT @DATE AS 'Original Date', TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';
输出
运行上述查询后,它将生成如下所示的输出 -
+------------------------------------+------------------------------------+ | Original Date | +06:00 | +------------------------------------+------------------------------------+ | 2023-02-20 14:50:06.8050290 +04:30 | 2023-02-20 14:50:06.8050290 +06:00 | +------------------------------------+------------------------------------+
示例
查看以下示例,我们将使用以下查询更改时区 -
SELECT TODATETIMEOFFSET (GETDATE(), '+05:30') AS Result;
输出
如果我们执行上述查询,则结果如下所示 -
+--------------------------------+ | Result | +--------------------------------+ | 2023-02-20 15:12:41.213 +05:30 | +--------------------------------+
示例
这是另一种情况,我们将使用以下查询以负数小时更改时区 -
SELECT TODATETIMEOFFSET (GETDATE(), '-06:00') AS Result;
输出
执行上述查询后,它将生成如下所示的输出 -
+---------------------------------+ | Result | +---------------------------------+ | 2023-02-20 15:16:30.247 -06:00 | +---------------------------------+