用表达式计算年月

表达式并没有提供根据日期计算出年月的函数,但是就像四舍五入一样,我们可以用间接的方式计算得出。
下面的表达式看上去有点复杂,不需要刻意去理解他,实际使用的时候直接套用即可。

由于Windows 7/Vista/XP默认的日期格式不同,所以表达式也有所不同。

计算年的表达式

SubString(Convert([日期],'System.String'),1,4)

计算月的表达式

Windows XP:

SubString(Convert([日期],'System.String'),6,IIF(SubString(Convert([日期],'System.String'),7,1) = '-',1,2))

Windows 7/Vista:

SubString(Convert([日期],'System.String'),6,IIF(SubString(Convert([日期],'System.String'),7,1) = '/',1,2))

通用(适合Windows XP/Vista/7):

SubString(Convert([日期],'System.String'),6,IIF(SubString(Convert([日期],'System.String'),7,1) In ('-','/'),1,2))

计算日的表达式

Windows XP:

SubString(Convert([日期],'System.String'),IIF(SubString(Convert([日期],'System.String'),7,1) = '-',8,9),2)

Windows 7/Vista:

SubString(Convert([日期],'System.String'),IIF(SubString(Convert([日期],'System.String'),7,1) = '/',8,9),2)

通用(适合Windows XP/Vista/7):

SubString(Convert([日期],'System.String'),IIF(SubString(Convert([日期],'System.String'),7,1) In ('-','/'),8,9),2)

CaseStudy目录下有一个示例文件“表达式求年月日.table”,其中年、月、日列的值就是用上述表达式计算得出,大家可以打开这个文件参考一下。

提示:上述表达式只对简体中文的操作系统有效,且不能修改控制面板中区域和语言选项的日期时间格式。


本页地址:http://www.foxtable.com/webhelp/topics/1285.htm