在Oracle中比较时间戳

假设我声明2个timestamp变量。可以说

DECLARE 

var_t1 timestamp :=null;
var_t1 timestamp :=null;
BEGIN 
---Suppose if i assign a timestamp to var_t1 . 

select some_date into var_t1 from sometable where id='some_id';

--IF(var_t2<>var_t2) , this will be always false .

IF(var_t1 <> var_t2 ) THEN
  dbms_output.put_line('Inside if');

END IF;

END;

如果任何一个变量为null,则始终返回false。

拉利特·库马尔(Lalit Kumar B)

如果任何一个变量为null,则始终返回false。

您正在将一个值与NULL进行比较它既不是TRUE也不是FALSE这是一个三值逻辑,未知

  • 没有什么等于空
  • 没有什么不等于空

更有意义的代码是:

IF a <> b or (a is null and b is not null) or (a is not null and b is null)
THEN

UPDATE添加一个示例。

SQL> set serveroutput on
SQL> DECLARE
  2    A NUMBER;
  3    b NUMBER;
  4  BEGIN
  5    A    :=NULL;
  6    B    :=10;
  7    IF a <> b OR (a IS NULL AND b IS NOT NULL) OR (a IS NOT NULL AND b IS NULL) THEN
  8      dbms_output.put_line('False');
  9    END IF;
 10  END;
 11  /
False

PL/SQL procedure successfully completed.

SQL>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章