Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 数据类型 » 数据类型转换

 

将日期转换为字符串

SQL Anywhere 提供了几个用于将 SQL Anywhere 日期和时间值转换为各种字符串和其它表达式的函数。在将日期值转换为字符串时,可能会将年份部分缩减为一个表示该年份的两位数字,从而丢失日期中的世纪部分。

错误的世纪值

假定有以下语句,尽管没有发生数据库错误,该语句仍错误地将一个表示日期 2000 年 1 月 1 日的字符串转换为表示日期 1900 年 1 月 1 日的字符串。

SELECT DATEFORMAT (
            DATEFORMAT('2000-01-01', 'Mmm dd/yy' ),
            'yyyy-Mmm-dd' )
    AS Wrong_year;

SQL Anywhere 会自动将明确的日期字符串 2000-01-01 正确地转换为日期值。然而,内部(或称嵌套)DATEFORMAT 函数的 'Mmm dd/yy' 格式在将日期转换回字符串并传递给外部 DATEFORMAT 函数时会删除日期的世纪部分。

因为在此情况下数据库选项 nearest_century 设置为 0,所以外部 DATEFORMAT 函数会将用两位年份值表示日期的字符串转换为 1900 和 1999 之间的年份。

有关日期和时间函数的详细信息,请参见日期和时间函数