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 centuryALTDATE 函数演示了如何创建重载函数——一个函数名对应多个函数实例。 每个实例支持不同的参数列表,使您能够将相关但不同的功能组合到一个用户自定义的功能中。 ALTDATE函数有两种形式。
- 表格1:ALTDATE (输出格式 )
- 此函数将当前日期转换为指定格式。
- 输出格式
- 与上述34种日期格式之一匹配的字符串。 字符串的数据类型必须是VARCHAR,实际长度不能超过13个字节。
函数的结果是VARCHAR(17)。
- 表格2:ALTDATE (输入日期、输入格式、输出格式 )
- 这种形式的函数将日期 (输入日期 )从用户指定的格式 (输入格式 )转换为另一种格式 (输出格式 )。
- 输入日期
- 参数必须为日期或日期的字符串表示形式,格式由 input-format 指定。 字符串的数据类型必须是VARCHAR,实际长度不能超过17字节。
- 输入格式
- 与上述34种日期格式之一匹配的字符串。 字符串的数据类型必须是VARCHAR,实际长度不能超过13个字节。
- 输出格式
- 与上述34种日期格式之一匹配的字符串。 字符串的数据类型必须是VARCHAR,实际长度不能超过13个字节。
函数的结果是VARCHAR(17)。
下表显示了函数两种形式的外部和特定名称,它们基于函数的输入。
| 转换类型 | 输入自变量 | 外部名 | 特定名称 |
|---|---|---|---|
| 当前日期 | 输出格式 (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'。