日期函数
比较常见比较简单的日期函数如today(), now()等获得当天的日期或者时间;year(), month(), day(), hour(), minute(), second()等函数获得日期时间中的对应年、月、日、时、分、秒;还有一些数据类型转换函数,如把字符串转换成日期、时间,把日期时间转换成字符串等;
以上函数只是一些容易想到,大部分产品都会内置的函数,但是仅仅有这些函数远远不够,在实际做报表的过程中,还需要用到大量的其它日期函数,举例来说,计算年龄的函数,很多报表工具就没有提供,或者即使提供了也实现得很简单。年龄的计算有可能仅仅精确到年,即2000年出生,到2008年就是8岁,而不管月份和日期;也有可能需要精确到月份,如2000年11月出生的,到2008年5月就只有7岁还不到8岁;更有精确到日的,算法同上。如果年龄的函数能够把这些可能的情况都考虑到,会给报表制作者带来很大的便利。
再比如说,周报、月报、年报中,经常用到weekbegin() 、weekend()、monthbegin()、monthend()、yearbegin、yearend()等函数,这些函数用于获取某个日期所在周、月、年的起始日期和结束日期,但是几乎很少有报表工具提供quarterbegin()、quarterend()函数,事实上季报用的很频繁,用户经常需要计算季度的起始结束日期。
还有一个比较常用的需求,是计算两个日期之间的差值,表现在:计算两个日期相差多少天;或者是反过来,与某个日期相差n天的日期值。或者简单点直接计算上一天、上两天、上个月、上一年等。当然,很多时候这类需求还不光是表现在日期上,还表现在时间上,比如两个时间之间相差几秒?与某个时间相差n秒的时间值是多少等等。这类函数的应用也非常频繁,可惜的是一般的报表工具都考虑不到,往往需要程序员写自定义函数。
当然,上述只是举了一部分的例子,实际做报表的过程中,会用到各种各样稀奇古怪的对日期计算的需求,所有这些需求如果都要程序员写自定义函数来实现,那该是多浩大的工作量啊!
润乾报表深切地理解报表制作者的难处,提供了几十个日期相关的函数,极大地方便了报表的制作。