时间日期函数

阅读(1921) 标签: 日期时间, 函数,

本部分介绍了报表中常用日期时间函数的函数说明、语法、参数说明、返回值、选项以及示例。

age()

函数说明:

计算从定义的时间到当前间隔的整年数

语法:

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()

函数说明:

将字符串或整数转换成日期型数据

语法:

date(stringExp)      stringExp返回结果要求与程序缺省的日期格式保持一致,程序缺省日期格式为"yyyy-MM-dd",如果包含时间,s时间部分不转换

date(year,month,day)    将整数year,month,day转换成日期型数据

date(stringExp,format)    根据format格式将stringExp转换成日期

date(datetimeExp)      从日期时间型数据中取出日期部分

参数说明:

stringExp

字符串表达式

year

整数

month

整数

day

整数

datetimeExp

日期时间型数据

返回值:

日期型数据

示例:

例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

datetime()

函数说明:

将字符串或长整数转换成日期时间

语法:

datetime(y,m,d,h,m,s)    将整数y,m,d,h,m,s转换成日期时间

datetime(long)     将长整数long转换成日期时间

datetime(string, format)  根据format格式将字符串string转换成日期时间,如果没有参数format,则字符串string的格式必须与程序缺省的日期时间格式保持一致。程序缺省日期时间格式为"yyyy-MM-dd HH:mm:ss"。

datetime(date,time)   将日期date和时间time拼成日期时间

datetime(datetimeExp)    调整datetimeExp的精度后返回,缺省精确到日

参数说明:

string

字符串

long

以微秒计的长整数

format

日期格式

date

日期类型

time

时间类型

y

正整数,年

m

正整数,月

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

day()

函数说明:

从日期型数据中获得该日在本月中是几号

语法:

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()

函数说明:

从日期型数据中获得该日的星期名称

语法:

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()

函数说明:

获得指定日期所在年,季度或者月份的天数

语法:

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()

函数说明:

判断两个日期是否相同

语法:

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()

函数说明:

计算相差某个时间的新日期数据

语法:

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()

函数说明:

获得指定时间位于一天中的第几个时辰

语法:

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()

函数说明:

计算两个日期时间型数据的间隔

语法:

interval (datetimeExp1,datetimeExp2)

参数说明:

datetimeExp1

日期或标准日期格式的字符串

datetimeExp2

日期或标准日期格式的字符串

如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss

返回值:

整数

选项:

@y 

计算两个日期时间型数据相差几年

@q

计算两个日期时间型数据相差几季度

@m

计算两个日期时间型数据相差几月

@s

计算两个日期时间型数据相差几秒

@ms

计算两个日期时间型数据相差几毫秒

@r

计算两个日期时间型数据间隔,返回实数

 

缺省为计算两个日期时间型数据相差几天

示例:

例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

millisecond()

函数说明:

取得指定日期的毫秒数

语法:

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()

函数说明:

从日期时间型数据中,获得分钟的信息

语法:

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()

函数说明:

取得指定日期所在的月份

语法:

month(dateExp)

参数说明:

dateExp

日期或标准日期格式的字符串

如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss

返回值:

整数

示例:

例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

now()

函数说明:

获得系统此刻的日期时间,精确到毫秒

语法:

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()

函数说明:

获得指定日期所在星期/月/季度的最早的一天和最后的一天

语法:

pdate(dateExp)

参数说明:

dateExp

返回值为日期或标准日期格式的表达式

返回值:

日期时间型

选项:

@w

获得指定日期所在星期的星期天

@we

获得指定日期所在星期的星期六

@m

取得指定日期所在月的月首

@me

取得指定日期所在月的月末

@q

取得指定日期所在季度的首日

@qe

取得指定日期所在季度的末日

 

缺省为获得指定日期所在星期的星期天

示例:

例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

second()

函数说明:

从日期时间型数据中,获得秒信息

语法:

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()

函数说明:

将字符串或日期时间型数据转换成时间型数据

语法:

time(stringExp{, format })  根据format格式将字符串stringExp转成时间,如果没有参数format,则字符串stringExp的格式必须与程序缺省的时间格式保持一致,程序缺省时间格式为"HH:mm:ss"。

time(h,m,s)      将整数h,m,s转换成时间型数据

time(datetimeExp)    从日期时间型数据中取出时间部分

参数说明:

stringExp

字符串

datetimeExp

日期时间型数据

format

格式串

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

year()

函数说明:

从日期型数据中获得年信息

语法:

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