Sql 显示当前日期而不是昨天';DB2中的日期

Sql 显示当前日期而不是昨天';DB2中的日期,sql,database,db2,Sql,Database,Db2,我使用以下定义创建了一个变量 create variable ABCDATE varchar(26) default((select (current_date - 1 day) from SYSIBM.SYSDUMMY1)) 当我使用模式名(SchemaName.ABCDATE)显示变量ABCDATE时,它显示了当前日期。理想情况下,它应该返回昨天的日期。在所有情况下都是这样的?为什么要创建一个包含日期的变量作为VARCHAR 这对我有用 create variable wiltc.abcd

我使用以下定义创建了一个变量

create variable ABCDATE varchar(26) default((select (current_date - 1 day) from SYSIBM.SYSDUMMY1))

当我使用模式名(SchemaName.ABCDATE)显示变量ABCDATE时,它显示了当前日期。理想情况下,它应该返回昨天的日期。在所有情况下都是这样的?

为什么要创建一个包含日期的变量作为VARCHAR

这对我有用

create variable wiltc.abcdate date default(current_date - 1 day)
展示

select wiltc.abcdate from sysibm.sysdummy1 
请注意,如果希望值自动更改,则不会更改。该值在创建varibale时设置,不会再次更新

你最好看一看风景

create view yesterday 
  as (select current_date - 1 day as thedate
      from sysibm.sysdummy1
     )

... 你可能会成为时区差异的受害者。您的(会话)时区是多少,与db(通常是UTC)的时区相比?+1只是为了指出期望值更新的问题,尽管我怀疑昨天是否需要一个变量(很容易推导)。。。