Adaptive Server Anywhere 提供了几个将 Adaptive Server Anywhere 日期和时间值转换为各种字符串和其它表达式的函数。在将日期值转换为字符串时,年份部分有可能减少为一个表示年份的两位数字,从而丢失日期中的世纪部分。
请看以下语句,该语句在没有数据库错误发生的情况下,错误地将一个表示日期 2000 年 1 月 1 日的字符串转换为表示 1900 年 1 月 1 日的字符串。
SELECT DATEFORMAT (
DATEFORMAT('2000-01-01', 'Mmm dd/yy' ),
'yyyy-Mmm-dd' )
AS Wrong_year;Adaptive Server Anywhere 将明确的日期字符串 2000-01-01 自动转换为正确的日期值。但是,内部(即嵌套)DATEFORMAT 函数的 'Mmm dd/yy' 格式化功能在日期转换回字符串并传递给外部 DATEFORMAT 函数时会删除日期的世纪部分。
因为在此情况下数据库选项 NEAREST_CENTURY 设置为 0,所以外部 DATEFORMAT 函数将用两位数年份值表示日期的字符串转换为介于 1900 和 1999 之间的年份。
有关日期和时间函数的详细信息,请参见 日期和时间函数。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。