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 中的 IN 子句吗?