DATE 函数

DATE 函数将它的参数转换为 DATE 值。

它的非 DATE 参数可为可转换为 DATE 值的任何表达式,通常是 CHAR、DATETIME 或 INTEGER 值。下列 WHERE 子句指定引用的字符串作为它的 CHAR 参数:
WHERE order_date < DATE('12/31/07')
DATE 函数解释一 CHAR 非 DATE 表达式时,它期望此表达式符合任何 DBDATE 环境变量指定的 DATE 格式。例如,假设当您执行下列查询时,DBDATE 设置为 Y2MD/
SELECT DISTINCT DATE('02/01/2008') FROM ship_info;

此 SELECT 语句生成错误,因为 DATE 函数不可转换此字符串表达式。DATE 函数将该日期字符串的第一部分(02)解释为年份,第二部分(01)为月份。

对于第三部分(2008),当 DATE 函数期望两位的日期(有效的日期值必须介于 0131 之间)时,它遇到了四位数字。因此,它不可转换该值。对于要以 DBDATEY2MD/ 值成功地执行的 SELECT 语句,该参数需要为 '08/02/01'。要获取关于 DBDATE 的格式的信息,请参阅 GBase 8s SQL 参考指南

要获取那些可指定 DATE 值的显示和数据条目格式的 GBase 8s 环境变量之中优先级顺序的信息,请参阅主题 DATE 和 DATETIME 格式规范的优先顺序

当您为非 DATE 表达式指定正的 INTEGER 值时,DATE 函数将此解释为 1899 年 12 月 31 日之后的天数。

如果整数值为负的,则 DATE 函数将该值解释为 1899 年 12 月 31 日之前的天数。下列 WHERE 子句为非 DATE 表达式指定 INTEGER 值:
WHERE order_date  <  DATE(365)

数据库服务器搜索 order_date 值小于 1900 年 12 月 31 日(其为 12/31/1899 加上 365 天)的行。