当数据库对象中的表达式(包括检查约束、分段存储表达式、SPL 例程、触发器或 UDR)包含字面日期值时,数据库服务器使用在创建(或上次修改)数据库对象时 DBDATE(或其他相关环境变量)所具有的设置对表达式求值。如果 DBDATE 已复位为新值,那么对文字 DATE 求值时会忽略该新值。
orderdate < '06/25/98'
则先前表达式的日期根据定义约束时 DBDATE 的值来进行格式编排。检查约束表达式解释为 orderdate < '06/25/98',不管对 orderdate 列执行插入或更新操作期间 DBDATE 的值如何。假设当用户将值 '30/01/98' 插入 orderdate 列中时,DBDATE 复位为 DMY2/。插入的日期值使用日期格式 DMY2/,而检查约束表达式使用日期格式 MDY2/。