数据库对象中的 DATE 表达式

当数据库对象中的表达式(包括检查约束、分段存储表达式、SPL 例程、触发器或 UDR)包含字面日期值时,数据库服务器使用在创建(或上次修改)数据库对象时 DBDATE(或其他相关环境变量)所具有的设置对表达式求值。如果 DBDATE 已复位为新值,那么对文字 DATE 求值时会忽略该新值。

例如:假如 DBDATE 设置为 MDY2/,用户创建了一个表且 orderdate 列具有以下检查约束:
orderdate < '06/25/98'

则先前表达式的日期根据定义约束时 DBDATE 的值来进行格式编排。检查约束表达式解释为 orderdate < '06/25/98',不管对 orderdate 列执行插入或更新操作期间 DBDATE 的值如何。假设当用户将值 '30/01/98' 插入 orderdate 列中时,DBDATE 复位为 DMY2/。插入的日期值使用日期格式 DMY2/,而检查约束表达式使用日期格式 MDY2/

有关较早版本的 GBase 8s 中始终根据运行时环境求值的旧对象的讨论,请参阅数据库对象中的缩写年份和表达式。该节描述如何重新定义对象,以便根据定义对象(或上次修改对象)时生效的环境变量设置解释日期。
要点: GBase 8sDBDATE 的行为与先前版本不兼容。