DB2时间的运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2时间的运算相关的知识,希望对你有一定的参考价值。

参考技术A --ps:sysibm.sysdummy1 表是一个内存的特殊表,常用于访问DB2中的寄存器,从而返回特定需要内容。
   另,VALUES也可用于访问寄存器

1)将字符串转换为date类型

2)将字符串转换为time类型

3)将字符串转换为timestamp类型

1)对于时间类型的数据,加减年月日可以直接进行

2)日期格式数据相减时对于DAY的差异

3)常用日期相减的函数实例

5)补充说明

1)转换

2)运算

3)时间格式转换字符串信息

健全性检查:Oracle DB 的 WHERE 子句中的 (+) 运算符? [复制]

【中文标题】健全性检查:Oracle DB 的 WHERE 子句中的 (+) 运算符? [复制]【英文标题】:Sanity Check: (+) Operator in WHERE Clause for Oracle DB? [duplicate] 【发布时间】:2011-07-15 08:35:39 【问题描述】:

可能重复:Oracle “(+)” Operator

所以我得到了一个包含以下内容的脚本:

SELECT BLAH
  FROM A_TABLE T1, A_TABLE T2, A_TABLE T3 
 WHERE T2.FIELD_1(+) = T1.FIELD_1
   AND T3.FIELD_1(+) = T2.FIELD_1
   ... etc a few more AND clauses that do that same thing

我需要将此脚本转换为 MSSQL Server,但我不知道该操作员在做什么。这可能是某种错字吗?

【问题讨论】:

认为这是 Oracle 所说的左连接,(+) 表示即使 T2 与 T1 不匹配,您也可以获得所有 T2。我可能会倒退。 Oracle "(+)" Operator 的可能副本。另外:***.com/questions/2425960/… 【参考方案1】:

这是用于外部连接的旧 Oracle 语法。您应该改用 ANSI 连接语法:

SELECT BLAH
  FROM A_TABLE T1
  LEFT JOIN A_TABLE T2 ON T2.FIELD_1 = T1.FIELD_1
  LEFT JOIN A_TABLE T3 ON T3.FIELD_1 = T2.FIELD_1
 WHERE ... etc

【讨论】:

【参考方案2】:

这是 LEFT JOIN 的 Oracle 表示法。

意思是

SELECT BLAH
  FROM A_TABLE T1
  LEFT JOIN A_TABLE T2 ON T2.FIELD_1 = T1.FIELD_1
  LEFT JOIN A_TABLE T3 ON T3.FIELD_1 = T2.FIELD_1
   ... etc a few more AND clauses that do that same thing

(+) 放在可选的一侧。另请阅读:

http://www.dba-oracle.com/art_sql_iso_99.htm Difference between Oracle's plus (+) notation and ansi JOIN notation?

【讨论】:

以上是关于DB2时间的运算的主要内容,如果未能解决你的问题,请参考以下文章

【DB2】SQL优化

我们应该在检索数据时避免 DB2 SQL 中的 IN 子句吗?

修改了服务器的时间后,db2数据库用不了了,怎么办,是把电脑时间提前了8天时间

带时间戳的 DB2 变量

DB2数据库表示时间的类型

DB2——db2日期和时间常用汇总