SET CURRENT TEMPORAL BUSINESS_TIME 语句
SET CURRENT TEMPORAL BUSINESS_TIME 语句用于更改 CURRENT TEMPORAL BUSINESS_TIME 特殊寄存器的值。
调用当前时间业务时间
此语句可嵌入应用程序中或者以交互方式发出。 它是可动态准备的可执行语句。
授权当前时间业务_时间
不需要执行任何操作。
当前时间业务时间的语法
当前时间业务时间描述
- NULL
- 指定空值。
- 表达式
- 指定一个返回空值或以下内置数据类型之一的值的表达式:
- 时间戳记
- 字符串
- 图形字符串
如果表达式是一个字符串或图形字符串,则必须满足以下要求:
- 它不能是CLOB或DBCLOB。
- 表达式的值必须是一个有效的时间戳字符串或图形字符串表示。
- 表达的结果必须转换为 TIMESTAMP(12)。
表达式可以包含以下任何支持的运算符:
- 常量
- 专用寄存器
- 可变(宿主变量、SQL参数、SQL变量或全局变量)
- 标量函数,其参数为支持的操作数
- CAST 规范,其中,强制类型转换操作数是受支持的操作数
- 使用算术运算符和操作数的表达式
有关更多信息,请参阅:
备注:当前时间设置 业务时间
- 事务
- SET CURRENT TEMPORAL BUSINESS_TIME 语句不是可提交操作。 ROLLBACK语句对CURRENT TEMPORAL BUSINESS_TIME没有影响。
- 对其他特殊登记册的影响
- CURRENT TEMPORAL BUSINESS_TIME 特殊寄存器的设置不会影响其他特殊寄存器,例如 CURRENT DATE 和 CURRENT TIMESTAMP 特殊寄存器。
示例:当前时间业务时间
- 将特殊寄存器设置为有效值的示例
- 以下两个语句将当前临时业务时间特殊寄存器设置为“ 2008-01-06-00.00.00.000000000000 ”。
SET CURRENT TEMPORAL BUSINESS_TIME = TIMESTAMP('2008-01-01') + 5 DAYS ; SET CURRENT TEMPORAL BUSINESS_TIME = '2008-01-06-00.00.00.000000000000'; - 特殊寄存器设置如何影响后续SQL语句的示例
- 在以下示例中,第一个语句将 CURRENT TEMPORAL BUSINESS_TIME 特殊寄存器设置为上个月。 假设表 att1 是一个应用程序期间的时间表。 当前时间业务时间特殊寄存器的设置会影响 att1 的更新。
假设 att1 表格中有bt_begin和bt_end列,用于指示BUSINESS_TIME时段的开始和结束。 在这个例子中, Db2 对UPDATE语句的解释如下:SET CURRENT TEMPORAL BUSINESS_TIME = CURRENT TIMESTAMP - 1 MONTH UPDATE att1 SET c1 = 5 WHERE pk = 100UPDATE att1 SET c1 = 5 WHERE pk = 100 AND bt_begin <= CURRENT TEMPORAL BUSINESS_TIME AND bt_end > CURRENT TEMPORAL BUSINESS_TIME - 设置特殊寄存器使其不影响后续SQL语句的示例
- 以下语句将 CURRENT TEMPORAL BUSINESS_TIME 特殊寄存器设置为空值。 后续引用申请期间临时表的SQL语句不受CURRENT TEMPORAL BUSINESS_TIME特殊寄存器的影响。
SET CURRENT TEMPORAL BUSINESS_TIME = NULL
