本部分介绍了报表中常用日期时间函数的函数说明、语法、参数说明、返回值、选项以及示例。
函数说明:
计算从定义的时间到当前间隔的整年数
语法:
age(dateExp{: formatExp })
age(stringExp:formatExp)
参数说明:
dateExp |
日期型表达式,运算的结果是日期型(Date) |
stringExp |
表达式,其结果必须为日期或中国日期时间格式的字符串 |
formatExp |
格式化表达式比如"yyyyMMdd","yyyy-MM-dd"等 |
备注:
计算从参数dateExp定义的时间到当前间隔的整年数
返回值:
整数
选项:
@y |
计算精确到年 |
@m |
计算精确到月 缺省为精确到日 |
示例:
例1:age(date ("1980-09-01"))
例2:age@m(datetime("1980-09-01 12:23:56"))
例3:age@y("19800227":"yyyyMMdd")
函数说明:
将字符串或整数转换成日期型数据
语法:
date(stringExp) stringExp返回结果要求与程序缺省的日期格式保持一致,程序缺省日期格式为"yyyy-MM-dd",如果包含时间,s时间部分不转换
date(year,month,day) 将整数year,month,day转换成日期型数据
date(stringExp,format:loc) 根据format格式将stringExp转换成日期,loc为stringExp的语言,缺省识别为系统语言
date(datetimeExp) 从日期时间型数据中取出日期部分
date(ym,day) 将整数ym,day转换成日期型数据
参数说明:
stringExp |
字符串表达式 |
format |
格式串 |
loc |
语言名,不区分大小写;常用语言名有zh(中文)、en(英文) |
year |
整数 |
month |
整数 |
day |
整数 |
datetimeExp |
日期时间型数据 |
ym |
六位数整数,解释为年月 |
day |
整数 |
返回值:
日期型数据
示例:
例1:date("1982-08-09") 返回日期:1982-08-09
例2:date("1982-08-09 10:20:30") 返回日期:1982-08-09
例3:date(1982,18,09) 返回日期: 1983-06-09
例4:date(1982,08,09) 返回日期:1982-08-09
例5:date(1982,-8,09) 返回日期:1981-04-09
例6:date(now()) 返回日期:2016-09-22
例7:date("12/28/1972","MM/dd/yyyy")返回日期:1972-12-28
例8:date(189208,08) 返回日期:1892-08-08
例9:date("4 Jul 2001","d MMM yyyy":"en") 返回日期:2001-07-04
函数说明:
将字符串或长整数转换成日期时间
语法:
datetime(y,m,d,h,m,s) 将整数y,m,d,h,m,s转换成日期时间
datetime(long) 将长整数long转换成日期时间
datetime(string, format:loc) 根据format格式将字符串string转换成日期时间,如果没有参数format,则字符串string的格式必须与程序缺省的日期时间格式保持一致。程序缺省日期时间格式为"yyyy-MM-dd HH:mm:ss"。loc为string的语言,缺省识别为系统语言。
datetime(date,time) 将日期date和时间time拼成日期时间
datetime(datetimeExp) 调整datetimeExp的精度后返回,缺省精确到日
datetime(ym,d,h,m,s) 将整数ym,d,h,m,s转换成日期时间
参数说明:
string |
字符串 |
long |
以微秒计的长整数 |
format |
日期格式 |
loc |
语言名,不区分大小写;常用语言名有zh(中文)、en(英文) |
date |
日期类型 |
time |
时间类型 |
y |
正整数,年 |
m |
正整数,月 |
ym |
六位正整数,年月 |
d |
正整数,日 |
h |
正整数,小时 |
m |
正整数,分钟 |
s |
正整数,秒 |
datetimeExp |
日期时间型数据 |
返回值:
日期时间
选项:
@m |
使用datetime(datetimeExp) 语法时时间精确到分 |
@s |
使用datetime(datetimeExp) 语法时时间精确到秒 |
示例:
例1:datetime("2006-01-01 10:20:30") 返回:2006-01-01 10:20:30
例2:datetime("2006-01-01 10:20:30:111") 返回:2006-01-01 10:20:30
例3:datetime(12345) 返回:1970-01-01 08:00:12
例4:datetime(now()) 返回:2016-09-22 00:00:00
例5:datetime(date("1982-08-09"),time("12:12:12")) 返回:1982-08-09 12:12:12
例6:datetime(2006,01,01,-10,-20,30) 返回:2005-12-31 13:40:30
例7:datetime("12/28/1972 10:23:43","MM/dd/yyyy HH:mm:ss") 返回:1972-12-28 10:23:43
例8:datetime@m(now()) 返回:2016-09-22 08:04:00
例9:datetime@s(now()) 返回:2016-09-22 08:04:55
例10:datetime(200601,01,-10,-20,30) 返回:2005-12-31 13:40:30
例11:datetime("4 五月 2001 3:08 下午","d MMM yyyy h:mm a":"zh")
返回:2001-05-04 15:08:00
函数说明:
从日期型数据中获得该日在本月中是几号
语法:
day(dateExp)
参数说明:
dateExp |
表达式,其结果必须为日期或中国日期时间格式的字符串 |
返回值:
整数
选项:
@w |
从日期型数据中,获得该日位于一个星期中的第几天,星期天返回1,星期一返回2,依此类推,缺省获取该日位于月中的某一天。 |
示例:
例1:day(datetime ("19800227","yyyyMMdd")) 返回:27
例2:day(datetime(12345)) 返回:1
例3:day(datetime("2006-01-15 10:20:30")) 返回:15
例4:day@w(datetime("19800227","yyyyMMdd")) 返回:4
例5:day@w(datetime("2006-01-15 10:20:30")) 返回:1
函数说明:
从日期型数据中获得该日的星期名称
语法:
dayname(dateExp)
参数说明:
dateExp |
日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss |
返回值:
字符型
示例:
例1:dayname(datetime("19800227","yyyyMMdd")) 返回:星期三
例2:dayname(datetime(12345)) 返回:星期四
例3:dayname(datetime("2006-01-15 10:20:30")) 返回:星期日
例4:dayname("12:14:34") 返回:星期四
例5:dayname("1972-11-08") 返回:星期三
例6:dayname("1972-11-08 10:20:30") 返回:星期三
函数说明:
获得指定日期所在年,季度或者月份的天数
语法:
days(dateExp)
参数说明:
dateExp |
日期或标准日期格式的字符串 |
返回值:
整数
选项:
@q |
获得指定日期所在季度的天数 |
@y |
获得指定日期所在年的天数 |
|
缺省为获得指定日期所在月的天数 |
示例:
例1:days(datetime("19800227","yyyyMMdd")) 返回:29
例2:days(datetime("2006-01-15 10:20:30")) 返回:31
例3:days@y(datetime("19800227","yyyyMMdd")) 返回:366
例4:days@q(datetime("2006-01-15 10:20:30")) 返回:90
函数说明:
判断两个日期是否相同
语法:
deq (datetimeExp1,datetimeExp2)
参数说明:
datetimeExp1 |
日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss |
datetimeExp2 |
日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss |
备注:
将dateExp1和dateExp2两个参数进行比较,判断是否相同
返回值:
布尔值
选项:
@y |
时间精确到年 |
@q |
时间精确到季度 |
@m |
时间精确到月 |
@t |
时间精确到旬 |
@w |
时间精确到周 |
|
缺省为时间精确到日 |
示例:
例1:deq("1988-12-08","1988-12-07") 返回:false
例2:deq@y(date("1988-11-08"),date("1988-09-12")) 返回:true
例3:deq@m(date("1988-11-08"),date("1988-09-12")) 返回:false
例4:deq@q(date("1988-12-08"),date("1988-10-12")) 返回:true
例5:deq@t(date("1988-10-08"),date("1988-10-12")) 返回:false
例6:deq@w(date("1988-10-05"),date("1988-10-08")) 返回:true
函数说明:
计算相差某个时间的新日期数据
语法:
elapse (dateExp, n)
dateExp ± n elapse(dateExp, n)
参数说明:
dateExp |
给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串 |
n |
整数表达式,需要求得相差n天/年/月的新日期,负数表示n天/年/月前的新日期 |
备注:
算出相差n天/ n月/ n年的新的日期数据dateExp
取得指定日期在去年的同月同日,若无同月同日,则返回去年同月最后一天
返回值:
日期时间
选项:
@y |
计算与指定日期相差n年的新日期数据 |
@q |
计算与指定日期相差n季度的新日期数据 |
@m |
计算与指定日期相差n月的新日期数据 |
@e |
指定日期是月底时计算后的新日期数据不调整为月底,缺省将把新日期数据调整成月底,与@yqm配合使用 |
@s |
计算与指定日期相差n秒的新的日期时间数据 |
@ms |
计算与指定日期相差n毫秒的新的日期时间数据 |
|
无选项缺省时表示算出给定日期n天后的新日期数据 |
示例:
elapse(datetime("19800227","yyyyMMdd"),5) |
1980-03-03 00:00:00 |
elapse@s(datetime("19800227","yyyyMMdd"),5) |
1980-02-27 00:00:05 |
elapse@ms(datetime("19800227","yyyyMMdd"),5) |
1980-02-27 00:00:00 |
elapse(datetime("19800227","yyyyMMdd"),-3) |
1980-02-24 00:00:00 |
elapse@y(datetime("19800227","yyyyMMdd"),-3) |
1977-02-27 00:00:00 |
elapse@q(datetime("19800227","yyyyMMdd"),-3) |
1979-05-27 00:00:00 |
elapse@m(datetime("19800227","yyyyMMdd"),-3) |
1979-11-27 00:00:00 |
elapse@s(datetime("19800227","yyyyMMdd"),-3) |
1980-02-26 23:59:57 |
elapse@ms(datetime("19800227","yyyyMMdd"),-3) |
1980-02-26 23:59:59 |
datetime("19800227","yyyyMMdd")+5 |
1980-03-03 00:00:00 |
datetime("19800227","yyyyMMdd")-5 |
1980-02-22 00:00:00 |
elapse@y(datetime("19770228","yyyyMMdd"),3) |
1980-02-29 00:00:00 |
elapse@ey(datetime("19770228","yyyyMMdd"),3) |
1980-02-28 00:00:00 |
elapse@q(datetime("19800229","yyyyMMdd"),1) |
1980-05-31 00:00:00 |
elapse@eq(datetime("19800229","yyyyMMdd"),1) |
1980-05-29 00:00:00 |
函数说明:
获得指定时间位于一天中的第几个时辰
语法:
hour(datetimeExp)
参数说明:
datetimeExp |
日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss |
返回值:
整数
示例:
例1:hour("1983-12-15") 返回:0
例2:hour("1983-12-15 10:30:25") 返回:10
例3:hour(datetime("2006-01-15 13:20:30")) 返回:13
函数说明:
计算两个日期时间型数据的间隔
语法:
interval (datetimeExp1,datetimeExp2)
参数说明:
datetimeExp1 |
日期或标准日期格式的字符串 |
datetimeExp2 |
日期或标准日期格式的字符串 如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss |
返回值:
整数
选项:
@y |
计算两个日期时间型数据相差几年 |
@q |
计算两个日期时间型数据相差几季度 |
@m |
计算两个日期时间型数据相差几月 |
@s |
计算两个日期时间型数据相差几秒 |
@ms |
计算两个日期时间型数据相差几毫秒 |
@r |
计算两个日期时间型数据间隔,返回实数 |
|
缺省为计算两个日期时间型数据相差几天 |
@w |
计算两个日期时间型数据相差几周 |
@7 |
计算两个日期时间型数据之间的周日数量,按照左开右闭区间计算 |
@1 |
计算两个日期时间型数据之间的周一数量,按照左开右闭区间计算 |
示例:
例1:interval(datetime("19800227","yyyyMMdd"),datetime("1983-02-27 00:00:45")) 返回:1096
例2:interval@y(datetime("19800227","yyyyMMdd"),datetime("1983-02-27 00:00:45")) 返回:3
例3:interval@q(datetime("19800227","yyyyMMdd"),datetime("1983-02-27 00:00:45")) 返回:12
例4:interval@m(datetime("19800227","yyyyMMdd"),datetime("1983-02-27 00:00:45")) 返回:36
例5:interval@s ("1972-11-08 10:20:30","1972-11-08 10:30:50") 返回:620
例6:interval@ms(datetime("19800227","yyyyMMdd"),datetime("1980-02-27 00:00:45")) 返回:45000
例7:interval@r("1972-11-08 10:20:30","1973-11-08 10:30:50") 返回:365.00717592592594
例8:interval@w("1972-10-08 10:20:30","1972-11-08 10:30:50") 返回:4
例9:interval@7("1972-10-08 10:20:30","1972-11-08 10:30:50") 返回:4
例10:interval@1("1972-10-08 10:20:30","1972-11-08 10:30:50") 返回:5
函数说明:
取得指定日期的毫秒数
语法:
millisecond(datetimeExp)
参数说明:
datetimeExp |
返回值为日期或标准日期格式的表达式 |
返回值:
整数
示例:
例1:millisecond(datetime("1980-02-27 12:00:02:123 ","yyyy-MM-dd hh:mm:ss:SSS")) 返回:123
例2:millisecond(now()) 返回:当前时间的毫秒数
函数说明:
从日期时间型数据中,获得分钟的信息
语法:
minute(datetimeExp)
参数说明:
datetimeExp |
日期或标准日期格式的字符串 如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss |
返回值:
整数
示例:
例1:minute(datetime ("19800227","yyyyMMdd")) 返回:0
例2:minute("1972-11-08 10:20:30") 返回:20
例3:minute(datetime("2006-01-15 13:20:30")) 返回:20
函数说明:
取得指定日期所在的月份
语法:
month(dateExp)
参数说明:
dateExp |
日期或标准日期格式的字符串 如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss |
返回值:
整数
选项:
@y |
参数中带有年份部分,返回6位数 |
示例:
例1:month(datetime ("19800227","yyyyMMdd")) 返回:2
例2:month("1972-11-08 10:20:30") 返回:11
例3:month(datetime("2006-01-15 13:20:30")) 返回:1
例4:month@y("1972-11-08 10:20:30") 返回:197211
函数说明:
获得系统此刻的日期时间,精确到毫秒
语法:
now()
返回值:
日期时间
选项:
@d |
只返回日期部分,日期类型 |
@t |
只返回时间部分,时间类型 |
@m |
精确到分 |
@s |
精确到秒 |
示例:
例1:now() 当前系统日期时间,比如:2016-12-15 11:26:33:422
例2:now@d() 当前系统日期,比如:2016-12-15
例3:now@t() 当前系统时间,比如:11:26:33
例4:now@m() 当前系统日期时间,比如:2016-12-15 11:26:00:0
例5:now@s() 当前系统日期时间,比如:2016-12-15 11:26:33:0
函数说明:
获得指定日期所在星期/月/季度的最早的一天和最后的一天
语法:
pdate(dateExp)
参数说明:
dateExp |
返回值为日期或标准日期格式的表达式 |
返回值:
日期时间型
选项:
@w |
获得指定日期所在星期的星期天 |
@we |
获得指定日期所在星期的星期六 |
@m |
取得指定日期所在月的月首 |
@me |
取得指定日期所在月的月末 |
@q |
取得指定日期所在季度的首日 |
@qe |
取得指定日期所在季度的末日 |
|
缺省为获得指定日期所在星期的星期天 |
@y |
获取指定日期所在年的第一天 |
示例:
例1:pdate@w(datetime("19800227","yyyyMMdd")) 1980-02-24
例2:pdate@we (datetime("19800227","yyyyMMdd")) 1980-03-01
例3:pdate@m(datetime("19800227","yyyyMMdd")) 1980-02-01
例4:pdate@me(datetime("19800227","yyyyMMdd")) 1980-02-29
例5:pdate@q(datetime("19800227","yyyyMMdd")) 1980-01-01
例6:pdate@qe(datetime ("19800227","yyyyMMdd")) 1980-03-31
例7:pdate@y(datetime("19800227","yyyyMMdd")) 1980-01-01
函数说明:
从日期时间型数据中,获得秒信息
语法:
second(datetimeExp)
参数说明:
datetimeExp |
日期或标准日期格式的字符串 如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss |
返回值:
整数
示例:
例1:second(datetime ("19800227","yyyyMMdd")) 返回:0
例2:second("1972-11-08 10:20:30") 返回:30
例3:second(datetime("2006-01-15 13:20:45")) 返回:45
函数说明:
将字符串或日期时间型数据转换成时间型数据
语法:
time(stringExp{, format }:loc) 根据format格式将字符串stringExp转成时间,如果没有参数format,则字符串stringExp的格式必须与程序缺省的时间格式保持一致,程序缺省时间格式为"HH:mm:ss",loc为stringExp的语言,缺省识别为系统语言。
time(h,m,s) 将整数h,m,s转换成时间型数据
time(datetimeExp) 从日期时间型数据中取出时间部分
参数说明:
stringExp |
字符串 |
datetimeExp |
日期时间型数据 |
format |
格式串 |
loc |
语言名,不区分大小写;常用语言名有zh(中文)、en(英文) |
h |
整数 |
m |
整数 |
s |
整数 |
返回值:
时间型数据
选项:
@s |
使用time(datetimeExp)时,时间精确到秒 |
@m |
使用time(datetimeExp)时,时间精确到分 |
示例:
例1:time("00:00:45") 00:00:45
例2:time@s(now()) 16:28:260
例3:time("00/00/45","HH/mm/ss") 00:00:45
例4:time(12,13,00) 12:13:00
例5:time(now()) 16:28:26512
例6:time@m(now()) 16:28:000
例7:time("1:08 PM","h:mm a":"en") 13:08:00
函数说明:
从日期型数据中获得年信息
语法:
year(dateExp)
参数说明:
dateExp |
日期或标准日期格式的字符串 如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss |
返回值:
整数
示例:
例1:year(datetime ("19800227","yyyyMMdd")) 返回:1980
例2:year("1972-11-08 10:20:30") 返回:1972
例3:year(datetime("2006-01-15 13:20:45")) 返回:2006