ALTDATE

ALTDATE函数以指定格式返回当前日期,或将用户指定的日期从一种格式转换为另一种格式。

阅读语法图跳过可视化语法图ALTDATE(输入日期、输入格式、输出格式)

该方案的电子邮件是 DSN8。

ALTDATE 函数以以下格式之一返回当前日期,或将用户指定的日期从一种格式转换为另一种格式:
   D MONTH YY    D MONTH YYYY    DD MONTH YY    DD MONTH YYYY
   D.M.YY        D.M.YYYY        DD.MM.YY       DD.MM.YYYY
   D-M-YY        D-M-YYYY        DD-MM-YY       DD-MM-YYYY
   D/M/YY        D/M/YYYY        DD/MM/YY       DD/MM/YYYY
   M/D/YY        M/D/YYYY        MM/DD/YY       MM/DD/YYYY
   YY/M/D        YYYY/M/D        YY/MM/DD       YYYY/MM/DD
   YY.M.D        YYYY.M.D        YY.MM.DD       YYYY.MM.DD
                 YYYY-M-D                       YYYY-MM-DD
                 YYYY-D-XX                      YYYY-DD-XX
                 YYYY-XX-D                      YYYY-XX-DD
   where:
   D:     Suppress leading zero if the day is less than 10
   DD:    Retain leading zero if the day is less than 10
   M:     Suppress leading zero if the month is less than 10
   MM:    Retain leading zero if the month is less than 10
   MONTH: Use English-language name of month
   XX:    Use a capital Roman numeral for month
   YY:    Use a year format without century
   YYYY:  Use a year format with century

ALTDATE 函数演示了如何创建重载函数——一个函数名对应多个函数实例。 每个实例支持不同的参数列表,使您能够将相关但不同的功能组合到一个用户自定义的功能中。 ALTDATE函数有两种形式。

表格1:ALTDATE (输出格式
此函数将当前日期转换为指定格式。
输出格式
与上述34种日期格式之一匹配的字符串。 字符串的数据类型必须是VARCHAR,实际长度不能超过13个字节。

函数的结果是VARCHAR(17)。

表格2:ALTDATE (输入日期、输入格式、输出格式
这种形式的函数将日期 (输入日期 )从用户指定的格式 (输入格式 )转换为另一种格式 (输出格式 )。
输入日期
参数必须为日期或日期的字符串表示形式,格式由 input-format 指定。 字符串的数据类型必须是VARCHAR,实际长度不能超过17字节。
输入格式
与上述34种日期格式之一匹配的字符串。 字符串的数据类型必须是VARCHAR,实际长度不能超过13个字节。
输出格式
与上述34种日期格式之一匹配的字符串。 字符串的数据类型必须是VARCHAR,实际长度不能超过13个字节。

函数的结果是VARCHAR(17)。

下表显示了函数两种形式的外部和特定名称,它们基于函数的输入。
表 1. ALTDATE的外部程序和特定名称
转换类型 输入自变量 外部名 特定名称
当前日期 输出格式 (VARCHAR) DSN8DUAD DSN8.DSN8DUADV
用户指定日期
输入日期 (VARCHAR)
输入格式 (VARCHAR)
输出格式 (VARCHAR)
DSN8DUCD DSN8.DSN8DUCDVVV
输入日期 (DATE)
输入格式 (VARCHAR)
输出格式 (VARCHAR)
DSN8DUCD DSN8.DSN8DUCDDVV
示例1: 将当前日期转换为“DD MONTH YY”格式,该格式将包含月份前导零、英文月份名称和年份(不含世纪两位数)。
   VALUES DSN8.ALTDATE( 'DD MONTH YY' );
示例2: 将当前日期转换为格式“ D.M.YYYY ”,该格式将忽略日期或月份前部的零,并包含年份和世纪。
   VALUES DSN8.ALTDATE( 'D.M.YYYY' );
示例3: 将当前日期转换为“YYYY-XX-DD”格式,该格式包括世纪、罗马数字表示的月份以及带前导零的日期。
   VALUES DSN8.ALTDATE( 'YYYY-XX-DD' );
示例4 :将日期格式“DD MONTH YYYY”转换为日期格式“YYYY/MM/DD”。
    VALUES DSN8.ALTDATE( '11 November 1918',
                         'DD MONTH YYYY',
                         'YYYY/MM/DD' );
上述示例的结果是“1918/11/18 ”。
示例 5 :将员工 000130 的入职日期(ISO 格式)转换为“ D.M.YY ”格式。
   SELECT  FIRSTNME || ' '
        ||  LASTNAME || ' was hired on '
        ||  DSN8.ALTDATE( HIREDATE,
                         'YYYY-MM-DD',
                         'D.M.YY' )
      FROM  EMP
     WHERE  EMPNO  = '000130';
假设 HIREDATE 为 '1971-07-28',则上述示例将返回:'DELORES QUINTANA was hired on 28.7.71'。