Arbutus官网(中国)
当前位置: 主页 > 资源中心 > 文档 >

Arbutus-函数专题-时间与日期函数

时间:2015-07-06 15:18来源:未知 作者:admin 点击:
Arbutus拥有丰富的日期和时间函数
  • AGE( )
AGE( ) 以天数为单位返回指定日期与指定截止日期比较得出的帐龄。
当为了确定逾期科目而比较两个日期或按帐龄执行收支差额分析时,请使用 AGE( )。
 
函数格式
AGE(date <,cutoff_date_yyyymmdd>)
 
AGE( ) 以天数为单位返回表示两个日期之间帐龄差值的数值。如果省略第二个参数,ARBUTUS 将使用当前系统日期。如果包括第二个参数,ARBUTUS 会相对于财政年度末或其他截止日期计算帐龄。
 
不管日期域以何种格式存储,只要使用常数,该常数必须是:
  1. 格式为 YYMMDD 或 YYYYMMDD 的字符串或表达式
  2. 格式为 YYMMDD 或 YYYYMMDD 的日期常数
  3. 有效的 ARBUTUS 日期表达式
 
早于截止日期的日期会返回一个正数值。晚于截止日期的日期则返回一个负数值。
可接受的日期范围是从 1900 年 1 月 1 日到 9999 年 12 月 31 日。
 
示例
假设当前系统日期是 1996 年 1 月 1 日:
AGE(`951220`) = 12
AGE(`19960108`) = -7
AGE(`19941220`,`950101`) = 12
AGE(Invoice_date) = 65
AGE(Invoice_date,`961231`) = 80
 
要提取帐龄在 180 天以上(以财政年度末为基准)的所有条目的名称、金额和发票日期,请指定:
AGE(Invoice_date,`961231`) > 180
 
  • CDOW( )
CDOW( ) 返回指定日期是星期几。
要以数值形式显示星期,请使用 DOW( ) 函数。
 
函数格式
CDOW(date, length)
date 指定日期。
length 指定域长度。要以缩写形式显示星期几,请指定较短的域长度。
 
示例
要显示星期几:
CDOW(`20000801`, 7) = "Tuesday"
CDOW(`20000802`, 9) = "Wednesday"
CDOW(`20000801`, 3) = "Tue"
 
  • CMON( )
返回指定日期或日期时间的月份名称。
函数格式 
CMON(D,N)
日期/日期时间D
日期时间。要为其返回月份名称的域、表达式或字面量值。
长度N为数值常量,1 和 9 之间的一个值,可指定输出字符串的长度。要以缩写形式显示月份名称,请指定一个较小值。
示例
CMON(‘20120814‘,3) = "Aug"
CMON(‘20120814‘,6) = "August"
  • CTOD( )
CTOD( ) 将字符或数值表达式转换成有效的日期表达式。
使用 CTOD( ) 可创建用于比较日期域值(特别是日期不是常量的情况下)的日期。例如,要标识某一特定日期前的所有日期,可以使用以下测试:
DATE < CTOD(year+month+day)
 
函数格式 
CTOD(field <,"date_format">)
 
CTOD( ) 函数(“Character To Date”的简写)将字符串或数值转换为有效日期。CTOD( ) 是各种其他软件使用的标准函数名称。与其他软件包不同,ARBUTUS 还可将数值表达式转换为日期。
 
如果第一个参数是数值,那么它会在转换之前自动转换成字符串。
 
假定第一个参数是以“YYYYMMDD”或“YYMMDD”中的任一种格式存储的。如果不是,ARBUTUS 允许您指定可选格式字符串。例如,要转换格式为“YYDDD”的省略日期,请指定:
CTOD(date,"YYDDD")
 
该格式字符串的格式与“设置日期”和日期数据类型相同。可以在待转换的字符串中包括标点符号。因为格式字符串实际上是字符串,而不是日期,所以它应该用匹配的双引号或单引号(而非反引号)引起。
 
示例
假设您有一个应收账款交易表,其中包括名为 Due 的支付日域。您想查看支付日在 1995 年 7 月 1 日之前的所有交易。为此,您需要将 Due 域和 1995 年 7 月 1 日的值做比较。因为 ARBUTUS 将 Due 域解释为一个唯一数值,所以不能简单地将它同 07/01/95 或 950701 比较。您必须将 1995 年 7 月 1 日转换成另一个数字。
 
要进行转换,请按如下所示使用 IF 测试或过滤器:
 
Due < CTOD(950701)
 
所有这些表达式返回的值均为 1995 年 12 月 31 日:
CTOD("951231")
CTOD(311295,"DDMMYY")
CTOD("19951231")
CTOD("951231", "YYMMDD")
CTOD("311295", "DDMMYY")
CTOD(951231)
CTOD(95365, "YYDDD")
CTOD("31/12/1995", "DD/MM/YYYY")
 
假设日期显示格式为 MM/DD/YY:
CTOD("951220") = "12/20/95"
CTOD("DEC2095","MMMDDYY") = "12/20/95"
 
  • DATE( )
DATE( ) 将日期表达式、当前系统日期或日期域值转换为用字符串表示的日期。
当您需要将当前日期作为字符串显示时,请使用 DATE( )。
 
函数格式 
DATE(<date>)
若不提供任何参数,则将转换系统日期。
日期将以 SET DATE 指定的格式返回 12 个字节的字符串。如果 SET DATE 指定的格式短于 12 个字节,那么返回的值会用空格填充。
 
示例
如果使用默认日期设置 MM/DD/YY,则系统日期 1995 年 11 月 22 日和 Date 域值 1995 年 12 月 31 日表示为:
DATE( ) = "11/22/95 "
DATE(Date) = "12/31/95 "
DATE(DATE,”YYYY-MM-DD”) = “1995-12-31”
 
  • DAY( )
从指定的日期或日期时间中提取日期(日/天)并将其以数值形式返回。
函数格式
DAY(日期/日期时间)
参数
日期/日期时间 :日期时间。要从中提取日期的域、表达式或字面量值。
输出:数值。
Examples
DAY(‘20120814‘) = 14
 
 
  • DOW( )
DOW( ) 返回一个包含代表星期几的 1 - 7 的数字的数值。数字 1 表示星期日。
要显示星期几的名称,请使用 CDOW( ) 函数。
 
函数格式
DOW(date)
 
示例
要将星期几作为一个单独的数字显示,请使用以下函数:
DOW(`19991124`) = 4
 
  • EOMONTH( )
返回比指定日期早或晚指定月数的月份的最后一天的日期。
函数格式
语法
EOMONTH(<日期/日期时间> <,月数>)
参数
日期/日期时间
可选。日期时间。从中计算月末日期的域、表达式或字面量值。如果省略该参数,则从当前操作系统日期计算月末日期。
月数
可选。数值常量。指定比日期/日期时间参数中的日期早或晚的月数。如果省略此参数,则使用默认值“0”(零)。如果已省略日期/日期时间参数,则无法指定月数
输出
日期时间。日期值使用当前 ARBUTUS 日期显示格式输出。
备注
如果月数参数中的值为正数,则输出日期比指定的日期/日期时间更近。如果该值为负数,则输出日期早于指定的日期/日期时间。如果省略该参数,或使用值“0”(零),则输出日期为日期/日期时间所在的月份的最后一天。
日期/日期时间参数可接受日期时间值,但该值的时间部分被忽略。
日期/日期时间参数指定的域可以使用任何日期或日期时间格式,前提是域定义正确定义了该格式。字面量日期值必须使用下列格式之一:YYYYMMDD 或 YYMMDD。您必须将字面量日期值引在反引号中(例如,`20141231`)。
您可以使用 EOMONTH( ) 函数,通过向结果添加 1 天来返回某月第一天的日期。
如果您想要返回精确日期,而不是比指定日期早或晚指定月数的月份的最后一天的日期,请使用 GOMONTH( ) 函数。
示例
EOMONTH(‘20120814‘) = ‘20120831 23:59:59‘
 
  • GOMONTH( )
返回比指定日期早或晚指定月数的日期。
函数格式
GOMONTH(日期/日期时间, 月数)
参数
日期/日期时间 :日期时间。从中计算输出日期的域、表达式或字面量值。
月数 :数值常量。指定比日期/日期时间参数中的日期早或晚的月数。
输出
日期时间。日期值使用当前 ACL 日期显示格式输出。
备注
如果月数参数中的值为正数,则输出日期比指定的日期/日期时间更近。如果该值为负数,则输出日期早于指定的日期/日期时间。如果省略该参数,或使用值“0”(零),则输出日期与日期/日期时间相同。
日期/日期时间参数可接受日期时间值,但该值的时间部分被忽略。
为日期/日期时间参数指定的域可以使用任何日期或日期时间格式,前提是域定义正确定义了该格式。字面量日期值必须使用下列格式之一:YYYYMMDD 或 YYMMDD。您必须将字面量日期值引在反引号中(例如,`20141231`)。
如果您想要返回比指定日期早或晚指定月数的月份的最后一天的日期,而不是精确日期,请使用 EOMONTH( ) 函数
 
示例
GOMONTH(‘20130814‘,4) = ‘20131214‘
GOMONTH(‘20130814‘,-4) = ‘20130414‘
 
  • HOUR( )
从指定的时间或日期时间中提取小时并将其以数值形式返回。
函数格式 
HOUR(时间/日期时间)
参数
时间/日期时间
日期时间。要从中提取小时的域、表达式或字面量值。
输出
数值。
示例
HOUR(‘23:12:32‘) = 23
HOUR(`20141231 235959`)=23
  • MAXIMUM( )
MAXIMUM( ) 返回多个数值或日期中较大的一个。
该函数支持数组。
MAXIMUM( ) 与 MINIMUM( ) 函数正好相反。
 
函数格式
MAXIMUM(N1, N2 <,N3 ...>)
如果 N1 大于 N2,则 MAXIMUM( ) 返回 N1。否则,它返回 N2。
如果两个数值参数的小数位数不同,则结果将调整为较长的小数位数。
 
示例
MAX(4, 7) = 7
MAX(7.5, 4) = 7.5
MAX(7, 4.55) = 7.00
 
如果您有逾期科目表,并要创建最小值大于等于 ¥1.00 的 Interest_Due 域,请指定:
MAXIMUM(BALANCE * ANNUAL_RATE, 1)
 
如果余额乘以利率之后小于 1 元人民币,MAX( ) 返回 1。否则,MAX( ) 返回计算出的利息额。
 
 
  • MINIMUM( )
MINIMUM( ) 返回多个指定数值或日期中较小的一个。
该函数支持数组。
MINIMUM( ) 与 MAXIMUM( ) 函数正好相反。
 
函数格式
MINIMUM(N1, N2 <,N3 ...>)
 
如果 N1 小于 N2,则 MINIMUM( ) 返回 N1。否则,它返回 N2。
如果数值的小数位数不同,MINIMUM( ) 则将结果调整为较长的小数位数。
 
示例
MIN(4, 7) = 4
MIN(7.5, 4) = 4.0
MIN(7, 4.55) = 4.55
 
在库存表中,要创建一个包含 Cost 和 Sale_price 二者中较低金额的域,请指定:
MINIMUM(Cost, Sale_price)
  • MINUTE( )
从指定的时间或日期时间中提取分钟并将其以数值形式返回。
函数格式
MINUTE(时间/日期时间)
参数
时间/日期时间
日期时间。要从中提取分钟的域、表达式或字面量值。
输出
数值。
示例
MINUTE(‘23:12:32‘) = 12
  • NOW( )
将当前操作系统时间作为日期时间数据类型返回。
函数格式
NOW( )
参数:该函数没有任何参数。
输出:日期时间。
备注:NOW( ) 以日期时间值形式返回当前操作系统时间,而不带参数的 TIME( ) 函数以字符串形式返回当前操作系统时间
示例
DAY(NOW( )) = 22
MONTH(NOW( )) = 8
YEAR(NOW( ))= 2013
HOUR(NOW( )) = 19
MINUTE(NOW( )) = 57
SECOND(NOW( ))= 3
  • NTOD( )
NTOD( ) 将数值返还成日期形式的年、月、日
函数格式
NTOD(N1,N2,N3)
  N1 (4 digit year)
4位长度的年
  N2 (1 or 2 digit month)
1-2位长度的月
  N3 (1 or 2 digit day)
1-2位形式的日
示例
NTOD(2012,08,14) = ‘20120814‘
NTOD(2012,08,32) = ‘19000101‘
NTOD(2012,08,14)+NTOT(23,12,32) = ‘20120814 23:12:32‘
最后一个示例为NTOD和NTOT的结合
 
  • NTOT( )
NTOT( ) 将数值形式的时、分、秒返还成时间形式的时、分、秒。
函数格式
NTOD(N1,N2,N3)
  N1 (1-2位24小时制的小时数值)
 
  N2 (1-2位表示分钟的数值)
 
  N3 (1-2位表示秒钟的数值)
如果函数的日期时间格式是无效的,那么返还的值也是无效的时间。
示例
NTOT(23,12,32) = ‘23:12:32‘
NTOT(23,12,70) = ‘19000101‘
NTOD(2012,08,14)+NTOT(23,12,32) = ‘20120814 23:12:32
 
  • SECOND( )
从指定的时间或日期时间中提取秒数并将其以数值形式返回。
函数格式
SECOND(时间/日期时间)
参数
时间/日期时间 :日期时间。要从中提取秒数的域、表达式或字面量值。
输出:数值。
 
示例
SECOND(‘23:12:32‘) = 32
  • TODAY( )
将当前操作系统日期作为日期时间数据类型返回。
函数格式
TODAY( )
参数
该函数没有任何参数。
输出:日期时间。
示例
假设当前系统时间为: Aug 22, 2013:
TODAY( ) = 20130822
DAY(TODAY( )) = 22
MONTH(TODAY( )) = 8
YEAR(TODAY( ))= 2013
 
  • TIME( )
从指定的时间或日期时间中提取时间并将其以字符串形式返回。还可以返回当前操作系统时间。
函数格式
TIME(<时间/日期时间> <,格式>)
参数
时间/日期时间 :可选。日期时间。要从中提取时间的域、表达式或字面量值。如果省略该参数,则以格式 hh:mm:ss 返回当前操作系统时间。
格式 :可选。字符。要应用于输出字符串的格式。如果省略此参数,则使用当前 ACL 时间显示格式。如果已省略时间/日期时间参数,则无法指定格式。必须用引号把格式参数引起来。
输出:字符。
 
示例
TIME( ) = "15:38:52"
如果一个时间域的格式为 HH:MM:DD PM. 假设它的值为11:32:59 PM, 那么该函数的输出如下,该函数的输出默认为24小时制。
TIME(LOGIN_TIME) = “23:32:59” 
  • YEAR( )
从指定的日期或日期时间中提取年份并将其以数值形式返回。
函数格式
YEAR(日期/日期时间)
参数
日期/日期时间 :日期时间。要从中提取年份的域、表达式或字面量值。
输出:数值。
示例
YEAR(‘20120814‘) = 2012 (责任编辑:admin)
------分隔线----------------------------