时间日期函数

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

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

age()

函数说明:

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

语法:

age(dateExp{: formatExp })

age(stringExp:formatExp)

参数说明:

dateExp

日期型表达式,运算的结果是日期型(Date)

stringExp

表达式,其结果必须为日期或中国日期时间格式的字符串

formatExp

格式化表达式比如"yyyyMMdd","yyyy-MM-dd"

备注:

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

返回值:

整数

选项:

@y

计算精确到年

@m

计算精确到月  缺省为精确到日

示例:

1age(date ("1980-09-01"))

2age@m(datetime("1980-09-01 12:23:56"))

3age@y("19800227":"yyyyMMdd")

date()

函数说明:

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

语法:

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

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

date(stringExp,format:loc)    根据format格式将stringExp转换成日期,locstringExp语言,缺省识别为系统语言

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

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

参数说明:

stringExp

字符串表达式

format

格式串

loc

语言名,不区分大小写;常用语言名有zh(中文)、en(英文)

year

整数

month

整数

day

整数

datetimeExp

日期时间型数据

ym

六位数整数,解释为年月

day

整数

返回值:

日期型数据

示例:

1date("1982-08-09")  返回日期:1982-08-09

2date("1982-08-09 10:20:30")  返回日期:1982-08-09

3date(1982,18,09)  返回日期: 1983-06-09

4date(1982,08,09)       返回日期:1982-08-09

5date(1982,-8,09)        返回日期:1981-04-09

6date(now())          返回日期:2016-09-22

7date("12/28/1972","MM/dd/yyyy")返回日期:1972-12-28

8date(189208,08)   返回日期:1892-08-08

9date("4 Jul 2001","d MMM yyyy":"en")  返回日期:2001-07-04

datetime()

函数说明:

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

语法:

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"locstring的语言,缺省识别为系统语言。

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)  语法时时间精确到秒

示例:

1datetime("2006-01-01 10:20:30")   返回:2006-01-01 10:20:30

2datetime("2006-01-01 10:20:30:111")   返回:2006-01-01 10:20:30

3datetime(12345)   返回:1970-01-01 08:00:12

4datetime(now())        返回:2016-09-22 00:00:00

5datetime(date("1982-08-09"),time("12:12:12")) 返回:1982-08-09 12:12:12

6datetime(2006,01,01,-10,-20,30)      返回:2005-12-31 13:40:30

7datetime("12/28/1972 10:23:43","MM/dd/yyyy HH:mm:ss")  返回:1972-12-28 10:23:43

8datetime@m(now())        返回:2016-09-22 08:04:00

9datetime@s(now())    返回:2016-09-22 08:04:55

10datetime(200601,01,-10,-20,30)    返回:2005-12-31 13:40:30

11datetime("4 五月 2001 3:08 下午","d MMM yyyy h:mm a":"zh")

返回:2001-05-04 15:08:00

day()

函数说明:

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

语法:

day(dateExp)

参数说明:

dateExp

表达式,其结果必须为日期或中国日期时间格式的字符串

返回值:

整数

选项:

@w

从日期型数据中,获得该日位于一个星期中的第几天,星期天返回1,星期一返回2,依此类推,缺省获取该日位于月中的某一天。

示例:

1day(datetime ("19800227","yyyyMMdd"))  返回:27

2day(datetime(12345))  返回:1

3day(datetime("2006-01-15 10:20:30"))  返回:15

4day@w(datetime("19800227","yyyyMMdd")) 返回:4

5day@w(datetime("2006-01-15 10:20:30"))  返回:1

dayname()

函数说明:

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

语法:

dayname(dateExp)

参数说明:

dateExp

日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ssyyyy-MM-ddHH:mm:ss

返回值:

字符型

示例:

1dayname(datetime("19800227","yyyyMMdd"))  返回:星期三

2dayname(datetime(12345))  返回:星期四

3dayname(datetime("2006-01-15 10:20:30"))  返回:星期日

4dayname("12:14:34")  返回:星期四

5dayname("1972-11-08")  返回:星期三

6dayname("1972-11-08 10:20:30")  返回:星期三

days()

函数说明:

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

语法:

days(dateExp)

参数说明:

dateExp

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

返回值:

整数

选项:

@q

获得指定日期所在季度的天数

@y

获得指定日期所在年的天数

 

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

示例:

1days(datetime("19800227","yyyyMMdd"))  返回:29

2days(datetime("2006-01-15 10:20:30"))  返回:31

3days@y(datetime("19800227","yyyyMMdd"))  返回:366

4days@q(datetime("2006-01-15 10:20:30"))  返回:90

deq()

函数说明:

判断两个日期是否相同

语法:

deq (datetimeExp1,datetimeExp2)

参数说明:

datetimeExp1

日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ssyyyy-MM-dd HH:mm:ss

datetimeExp2

日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ssyyyy-MM-dd HH:mm:ss

备注:

dateExp1dateExp2两个参数进行比较,判断是否相同

返回值:

布尔值

选项:

@y

时间精确到年

@q

时间精确到季度

@m

时间精确到月

@t

时间精确到旬

@w

时间精确到周

 

缺省为时间精确到日

示例:

1deq("1988-12-08","1988-12-07")  返回:false

2deq@y(date("1988-11-08"),date("1988-09-12"))  返回:true

3deq@m(date("1988-11-08"),date("1988-09-12"))  返回:false

4deq@q(date("1988-12-08"),date("1988-10-12"))  返回:true

5deq@t(date("1988-10-08"),date("1988-10-12"))  返回:false

6deq@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:ssyyyy-MM-ddHH:mm:ss

返回值:

整数

示例:

1hour("1983-12-15")  返回:0

2hour("1983-12-15 10:30:25")  返回:10

3hour(datetime("2006-01-15 13:20:30"))  返回:13

interval()

函数说明:

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

语法:

interval (datetimeExp1,datetimeExp2)

参数说明:

datetimeExp1

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

datetimeExp2

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

如:yyyy-MM-dd HH:mm:ssyyyy-MM-ddHH:mm:ss

返回值:

整数

选项:

@y 

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

@q

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

@m

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

@s

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

@ms

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

@r

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

 

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

@w

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

@7

计算两个日期时间型数据之间的周日数量,按照左开右闭区间计算

@1

计算两个日期时间型数据之间的周一数量,按照左开右闭区间计算

示例:

1interval(datetime("19800227","yyyyMMdd"),datetime("1983-02-27 00:00:45"))  返回:1096

2interval@y(datetime("19800227","yyyyMMdd"),datetime("1983-02-27 00:00:45"))  返回:3

3interval@q(datetime("19800227","yyyyMMdd"),datetime("1983-02-27 00:00:45"))  返回:12

4interval@m(datetime("19800227","yyyyMMdd"),datetime("1983-02-27 00:00:45"))  返回:36

5interval@s ("1972-11-08 10:20:30","1972-11-08 10:30:50")  返回:620

6interval@ms(datetime("19800227","yyyyMMdd"),datetime("1980-02-27 00:00:45"))  返回:45000

7interval@r("1972-11-08 10:20:30","1973-11-08 10:30:50")  返回:365.00717592592594

8interval@w("1972-10-08 10:20:30","1972-11-08 10:30:50")  返回:4

9interval@7("1972-10-08 10:20:30","1972-11-08 10:30:50")  返回:4

10interval@1("1972-10-08 10:20:30","1972-11-08 10:30:50")  返回:5

millisecond()

函数说明:

取得指定日期的毫秒数

语法:

millisecond(datetimeExp)

参数说明:

datetimeExp

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

返回值:

整数

示例:

1millisecond(datetime("1980-02-27 12:00:02:123 ","yyyy-MM-dd hh:mm:ss:SSS"))  返回:123

2millisecond(now())  返回:当前时间的毫秒数

minute()

函数说明:

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

语法:

minute(datetimeExp)

参数说明:

datetimeExp

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

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

返回值:

整数

示例:

1minute(datetime ("19800227","yyyyMMdd"))  返回:0

2minute("1972-11-08 10:20:30")  返回:20

3minute(datetime("2006-01-15 13:20:30"))  返回:20

month()

函数说明:

取得指定日期所在的月份

语法:

month(dateExp)

参数说明:

dateExp

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

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

返回值:

整数

选项:

@y 

参数中带有年份部分,返回6位数

示例:

1month(datetime ("19800227","yyyyMMdd"))  返回:2

2month("1972-11-08 10:20:30")  返回:11

3month(datetime("2006-01-15 13:20:30"))  返回:1

4month@y("1972-11-08 10:20:30")   返回:197211

now()

函数说明:

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

语法:

now()

返回值:

日期时间

选项:

@d

只返回日期部分,日期类型

@t

只返回时间部分,时间类型

@m

精确到分

@s

精确到秒

示例:

1now()  当前系统日期时间,比如:2016-12-15 11:26:33:422

2now@d()    当前系统日期,比如:2016-12-15

3now@t()    当前系统时间,比如:11:26:33

4now@m()    当前系统日期时间,比如:2016-12-15 11:26:00:0

5now@s()    当前系统日期时间,比如:2016-12-15 11:26:33:0

pdate()

函数说明:

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

语法:

pdate(dateExp)

参数说明:

dateExp

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

返回值:

日期时间型

选项:

@w

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

@we

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

@m

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

@me

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

@q

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

@qe

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

 

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

@y

获取指定日期所在年的第一天

示例:

1pdate@w(datetime("19800227","yyyyMMdd"))  1980-02-24

2pdate@we (datetime("19800227","yyyyMMdd"))  1980-03-01

3pdate@m(datetime("19800227","yyyyMMdd"))  1980-02-01

4pdate@me(datetime("19800227","yyyyMMdd"))  1980-02-29

5pdate@q(datetime("19800227","yyyyMMdd"))  1980-01-01

6pdate@qe(datetime ("19800227","yyyyMMdd"))  1980-03-31

7pdate@y(datetime("19800227","yyyyMMdd"))   1980-01-01

second()

函数说明:

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

语法:

second(datetimeExp)

参数说明:

datetimeExp

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

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

返回值:

整数

示例:

1second(datetime ("19800227","yyyyMMdd"))  返回:0

2second("1972-11-08 10:20:30")   返回:30

3second(datetime("2006-01-15 13:20:45"))  返回:45

time()

函数说明:

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

语法:

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

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

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

参数说明:

stringExp

字符串

datetimeExp

日期时间型数据

format

格式串

loc

语言名,不区分大小写;常用语言名有zh(中文)、en(英文)

h

整数

m

整数

s

整数

返回值:

时间型数据

选项:

@s

使用time(datetimeExp)时,时间精确到秒

@m

使用time(datetimeExp)时,时间精确到分

示例:

1time("00:00:45")     00:00:45

2time@s(now())      16:28:260

3time("00/00/45","HH/mm/ss")    00:00:45

4time(12,13,00)      12:13:00

5time(now())     16:28:26512

6time@m(now())       16:28:000

7time("1:08 PM","h:mm a":"en")   13:08:00

year()

函数说明:

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

语法:

year(dateExp)

参数说明:

dateExp

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

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

返回值:

整数

示例:

1year(datetime ("19800227","yyyyMMdd"))  返回:1980

2year("1972-11-08 10:20:30")  返回:1972

3year(datetime("2006-01-15 13:20:45"))  返回:2006