时间函数datedif, datesubdate,weekday,today,weekdate
1.datedif
DATEDIF(start_date,end_date,unit):返回两个指定日期间的天数、月数或年数。
Start_date:代表所指定时间段的初始日期。
End_date:代表所指定时间段的终止日期。
Unit:函数返回信息的类型。
若unit=“Y”,则DATEDIF返回指定时间段的年差数。
若unit=“M”,则DATEDIF返回指定时间段的月差数。
若unit=“D”,则DATEDIF返回指定时间段的日差数。
若unit=“MD”,则DATEDIF忽略年和月,返回指定时间段的日差数。
若unit=“YM”,则DATEDIF忽略年和日,返回指定时间段的月差数。
若unit=“YD”,则DATEDIF忽略年,返回指定时间段的日差数。
示例:
DATEDIF("2001/2/28","2004/3/20","Y")等于3,即在2001年2月28日与2004年3月20日之间有3个整年。
DATEDIF("2001/2/28","2004/3/20","M")等于36,即在2001年2月28日与2004年3月20日之间有36个整月。
DATEDIF("2001/2/28","2004/3/20","D")等于1116,即在2001年2月28日与2004年3月20日之间有1116个整天。
DATEDIF("2001/2/28","2004/3/20","MD")等于8,即忽略月和年后,2001年2月28日与2004年3月20日的差为8天。
DATEDIF("2001/1/28","2004/3/20","YM")等于2,即忽略日和年后,2001年1月28日与2004年3月20日的差为2个月。
DATEDIF("2001/2/28","2004/3/20","YD")等于21,即忽略年后,2001年2月28日与2004年3月20日的差为21天。
2.datesubdate
DATESUBDATE(date1,date2,op):返回两个日期之间的时间差。
op表示返回的时间单位:"s",以秒为单位;"m",以分钟为单位;"h",以小时为单位;"d",以天为单位;"w",以周为单位。
示例:
DATESUBDATE("2008-08-08", "2008-06-06","h")等于1512。
例子:
DATESUBDATE(now(), B3, "d") + "天" + mod(DATESUBDATE(now(), B3, "h"), 24) + "小时" + mod(DATESUBDATE(now(), B3, "m"), 60)
+ "分钟" + mod(DATESUBDATE(now(), B3, "s"), 60) + "秒" //时间差 天时分秒格式
3.weekday
WEEKDAY(Serial_number):获取日期并返回星期数。返回值为介于0到6之间的某一整数,分别代表星期中的某一天(从星期日到星期六)。
Serial_number:输入的日期。
备注: FineBI将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在1900年日期系统中,FineBI电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
示例:
WEEKDAY("2005/9/10")等于6(星期六);
WEEKDAY("2005/9/11")等于0(星期日);
WEEKDAY(35796)等于4(星期四)。
4.weekdate
weekdate(year,month,weekOfMonth,dayOfWeek):返回指定年月的指定周的周几的具体日期。
示例:
weekdate(2009,10,2,1)返回的是2009年的10月的第二个周的第一天即星期天的日期,返回的是2009-10-04;
最后一个参数dayOfWeek为-1时,表示这个周的最后一天。
示例:
weekdate(2009,12,1,-1)返回的是2009年的12月的第一个周的最后一天即星期六的日期,返回的是2009-12-05。
5.datedelta
DATEDELTA(date, deltadays):返回一个日期date后deltadays的日期。deltaDays可以为正值,负值,零。
示例:
DATEDELTA("2008-08-08", -10)等于2008-07-29;
DATEDELTA("2008-08-08", 10)等于2008-08-18。