说明
基于指定的范围将日期时间值转换为 21 世纪日期时间值。
参数
DateTimeString:只接受有效日期字段,年份为 2 位数或 4 位数。
定义为日期字段的数据库字段。“报表选项”(在“文件”菜单中)应设置为“将日期时间字段转换为日期时间字符串”。
以“yyyy/MM/dd HH:mm:ss.00”或“yy/MM/dd HH:mm:ss:00”格式输入的日期时间字符串,例如“1997/04/11 12:12:12.00”或“97/04/11 12:12:12.00”。
Number:一个对应于所需时限年份的 0 到 99 之间的数字。
操作
2 位数年份 (xx)
如果 Year 值大于时限数字,将在这个 2 位数之前添加 19(即 19xx)。如果 Year 值小于或等于时限数字,将在这个 2 位数之前添加 20(即 20xx)。
4 位数年份 (19xx)
如果 Year 值中的最后两位大于时限数字,则 Year 保持为日期字段中所找到的那个值(即 19xx)。如果 Year 值中的两位数小于或等于时限数字,则前两位将更改为 20(即 20xx)。如果年份字段的前两位是 20,则 Year 保持为日期字段中所找到的那个值(即 20xx)。
注意: 如果年份小于或等于 1899 而大于或等于 100,则不对日期进行更改。
示例
注意: 计算机日期设置必须是“yy/mm/dd”或“yyyy/mm/dd”,以便下列示例返回正确结果。
此处的时限值比年份大,因此它将更改为 20XX。
DTSTo2000(ToText(CDateTime(1988,12,12,12,12,12)), 90)
应返回 2088/12/12 12:12:12PM
此处的时限值比年份小,因此不更改年份。
DTSTo2000(ToText(CDateTime(1984,12,12,1,2,3)), 83)
应返回 1984/12/12 01:02:03
其他示例
下面是一些不受该函数影响的日期示例。
DTSTo2000(ToText(CDateTime(1899,12,12,1,2,3)), 99)
应返回 1899/12/12 1:02:03AM
DTSTo2000(ToText(CDateTime(1899,12,12)), 99)
应返回 1899/12/12 12:00PM
DTSTo2000(ToText(CDateTime(100,12,12,1,2,3)), 99)
应返回 100/12/12 1:02:03AM
一些数据库以两位字段保存日期的年份部分,这些示例将模拟该日期字段。
DTSTo2000(ToText(CDateTime(98,12,12,1,2,3)), 99)
应返回 2098/12/12 1:02:03AM
DTSTo2000(ToText(CDateTime(98,12,12,1,2,3)), 97)
应返回 1998/12/12 1:02:03AM
DTSTo2000(ToText(CDateTime(98,12,12)), 97)
应返回 1998/12/12 12:00PM
DTSTo2000(ToText(CDateTime(9,12,12,1,2,3)), 10)
应返回 2009/12/12 1:02:03AM
DTSTo2000(ToText(CDateTime(1,12,12,1,2,3)), 0)
应返回 1901/12/12 01:02:03AM