热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

帆软日期格式转换_日期和时间函数FineReport帮助文档全面的报表使用教程和学习资料...

凡函数中以日期作为参数因子的,其中日期的形式都必须是yyyymmdd。而且必须用英文环境下双引号()引用。1.DATEDATE(year,month,day)&#

凡函数中以日期作为参数因子的,其中日期的形式都必须是 yyyy/mm/dd。而且必须用英文环境下双引号(" ")引用。

1. DATE

DATE(year,month,day):返回一个表示某一特定日期的系列数。

Year:代表年,可为一到四位数。

Month:代表月份。

若 1<&#61;month<&#61; 12&#xff0c;则函数把参数值作为月。

若 month>12&#xff0c;则函数从年的一月份开始往上累加。例如&#xff1a;DATE(2000,25,2)等于 2002 年 1 月 2 日的系列数。

Day&#xff1a;代表日。

若日期小于等于某指定月的天数&#xff0c;则函数将此参数值作为日。

若日期大于某指定月的天数&#xff0c;则函数从指定月份的第一天开始往上累加。若日期大于两个或多个月的总天数&#xff0c;则函数把减去两个月或多个月的余数加到第三或第四个月上&#xff0c;依此类推。

如&#xff1a;DATE(2000,3,35)等于 2000 年 4 月 4 日的系列数。

示例&#xff1a;

DATE(1978, 9, 19)等于 1978 年 9 月 19 日。

DATE(1211, 12, 1)等于 1211 年 12 月 1 日。

其中月和日为 1 到 9 之间的数字时&#xff0c;不需要在前面加上 0 而直接写数字如 DATE(2011, 2, 1)即可。

2. DATEDELTA

DATEDELTA(date, deltadays)&#xff1a;返回一个日期——date 后 deltadays 的日期。deltaDays 可以为正值&#xff0c;负值&#xff0c;零。

示例&#xff1a;

DATEDELTA("2008-08-08", -10)等于 2008-07-29。

DATEDELTA("2008-08-08", 10)等于 2008-08-18。

3. DATEDIF

DATEDIF(start_date,end_date,unit)&#xff1a;返回两个指定日期间的天数、月数或年数。

Start_date&#xff1a;代表所指定时间段的初始日期。

End_date&#xff1a;代表所指定时间段的终止日期。

Unit&#xff1a;函数返回信息的类型。

若 unit&#61;“Y”&#xff0c;则 DATEDIF 返回指定时间段的年差数。

若 unit&#61;“M”&#xff0c;则 DATEDIF 返回指定时间段的月差数。

若 unit&#61;“D”&#xff0c;则 DATEDIF 返回指定时间段的日差数。

若 unit&#61;“MD”&#xff0c;则 DATEDIF 忽略年和月&#xff0c;返回指定时间段的日差数。

若 unit&#61;“YM”&#xff0c;则 DATEDIF 忽略年和日&#xff0c;返回指定时间段的月差数。

若 unit&#61;“YD”&#xff0c;则 DATEDIF 忽略年&#xff0c;返回指定时间段的日差数。

示例&#xff1a;

DATEDIF("2001/2/28","2004/3/20","Y")等于 3&#xff0c;即在 2001 年 2 月 28 日与 2004 年 3 月 20 日之间有 3 个整年。

DATEDIF("2001/2/28","2004/3/20","M")等于 36&#xff0c;即在 2001 年 2 月 28 日与 2004 年 3 月 20 日之间有 36 个整月。

DATEDIF("2001/2/28","2004/3/20","D")等于 1116&#xff0c;即在 2001 年 2 月 28 日与 2004 年 3 月 20 日之间有 1116 个整天。

DATEDIF("2001/2/28","2004/3/20","MD")等于 8&#xff0c;即忽略月和年后&#xff0c;2001 年 2 月 28 日与 2004 年 3 月 20 日的差为 8 天。

DATEDIF("2001/1/28","2004/3/20","YM")等于 2&#xff0c;即忽略日和年后&#xff0c;2001 年 1 月 28 日与 2004 年 3 月 20 日的差为 2 个月。

DATEDIF("2001/2/28","2004/3/20","YD")等于 21&#xff0c;即忽略年后&#xff0c;2001 年 2 月 28 日与 2004 年 3 月 20 日的差为 21 天。

4. DATEINMONTH

DATEINMONTH(date, number)&#xff1a;函数返回在某一个月当中第几天的日期。

示例&#xff1a;

DATEINMONTH("2008-08-08", 20)等于 2008-08-20。

5. DATEINQUARTER

DATEINQUARTER(date, number)&#xff1a;函数返回在某一个季度当中第几天的日期。

示例&#xff1a;

DATEINQUARTER("2009-05-05", 20)等于 2009-04-20。

6. DATEINWEEK

DATEINWEEK(date, number)&#xff1a;函数返回在某一个星期当中第几天的日期。

示例&#xff1a;

dateInWeek("2008-08-28", 2)等于 2008-08-26。

7. DATEINYEAR

DATEINYEAR(date, number)&#xff1a;函数返回在某一年当中第几天的日期。

示例&#xff1a;

dateInYEAR("2008/12/03", 300)等于 2008-10-26。

8. DATESUBDATE

DATESUBDATE(date1, date2, op)&#xff1a;返回两个日期之间的时间差。

op表示返回的时间单位&#xff1a;

"s"&#xff0c;以秒为单位。

"m"&#xff0c;以分钟为单位。

"h"&#xff0c;以小时为单位。

"d"&#xff0c;以天为单位。

"w"&#xff0c;以周为单位。

示例&#xff1a;

DATESUBDATE("2008-08-08", "2008-06-06","h")等于 1512。

9. DATETONUMBER

DATETONUMBER(date)&#xff1a;返回自 1970 年 1月 1日 00:00:00 GMT 经过的毫秒数。

示例&#xff1a;

DATETONUMBER("2008-08-08")等于 1218124800000。

10. DAY

DAY(serial_number)&#xff1a;返回日期中的日。DAY 是介于 1 和 31 之间的一个数。

Serial_number&#xff1a;含有所求的年的日期&#xff0c;参数为空时默认为当天日期。

注&#xff1a;

FineReport 将日期保存为系列数&#xff0c;一个系列数代表一个与之匹配的日期&#xff0c;以方便用户对日期进行数值式计算。

在 1900 年日期系统中&#xff0c;FineReport 电子表格将 1900 年 1 月 1 日保存为系列数 2&#xff0c;将 1900 年 1 月 2 日保存为系列数 3&#xff0c;将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统&#xff0c;1998 年 1 月 1 日存为系列数 35796。

示例&#xff1a;

DAY("2000/1/1")等于 1。

DAY("2006/05/05")等于 5。

DAY("1997/04/20")等于 20。

DAY(35796)等于1。

11. DAYS360

DAYS360(start_date,end_date,method)&#xff1a;按照一年 360 天的算法(每个月以 30 天计&#xff0c;一年共计 12 个月)&#xff0c;返回两日期间相差的天数&#xff0c;这在会计计算中将会用到的。如果财务系统是基于一年 12 个月&#xff0c;每月 30 天&#xff0c;可用此函数帮助计算支付款项。

Start_date和 end_date &#xff1a;是用于计算期间天数的起止日期。

Method&#xff1a;它指定了在计算中是采用欧洲方法还是美国方法。

Method定义&#xff1a;FALSE 或忽略 美国方法 (NASD)。如果起始日期是一个月的 31 号&#xff0c;则等于同月的 30 号。如果终止日期是一个月的 31 号&#xff0c;并且起始日期早于 30 号&#xff0c;则终止日期等于下一个月的 1 号&#xff0c;否则&#xff0c;终止日期等于本月的 30 号。

TRUE欧洲方法。无论是起始日期还是终止日期为一个月的 31号&#xff0c;都将等于本月的 30号。

注&#xff1a;

FineReport 将日期保存为系列数&#xff0c;一个系列数代表一个与之匹配的日期&#xff0c;以方便用户对日期进行数值式计算。

在 1900 年日期系统中&#xff0c;FineReport 电子表格将 1900 年 1 月 1 日保存为系列数 2&#xff0c;将 1900 年 1 月 2 日保存为系列数 3&#xff0c;将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统&#xff0c;1998 年 1 月 1 日存为系列数 35796。

示例&#xff1a;

DAYS360("1998/1/30", "1998/2/1")等于 1

12. DAYSOFMONTH

DAYSOFMONTH(date)&#xff1a;返回从 1900 年 1 月后某年某月包含的天数。

示例&#xff1a;

DAYSOFMONTH("1900-02-01")等于 28

DAYSOFMONTH("2008/04/04")等于 30

13. DAYSOFQUARTER

DAYSOFQUARTER(date)&#xff1a;返回从 1900 年 1 月后某年某季度的天数。

示例&#xff1a;

DAYSOFQUARTER("2009-02-01")等于 90

DAYSOFQUARTER("2009/05/05")等于 91

14. DAYSOFYEAR

DAYSOFYEAR(year)&#xff1a;返回 1900 年以后某年包含的天数。

示例&#xff1a;

DAYSOFYEAR(2008)等于 366

15. DAYVALUE

DAYVALUE(date)&#xff1a;此函数可用来把一个日期转化为一个系列数&#xff0c;返回值为一个数字。

转化原理&#xff1a;1900 年 1 月 1 日至 date 日期所经历的天数&#xff0c;一个日期匹配一个系列数&#xff0c;方便用户对日期进行数值式计算。参数含义参数格式

date需要转化的日期日期格式或代表日期的文本格式&#xff0c;例如“2000/2/28”

数字格式&#xff1a;整数&#xff0c;例如 1000001

date 为整数时&#xff0c;date 大于1000000&#xff0c;认为是 unix 时间&#xff1b;date 小于或等于1000000&#xff0c;认为是距 1900 年 1 月 1 日的天数。unix 时间是指从 1970 年 1 月 1 日 开始所经过的秒数&#xff0c;不考虑闰秒。

示例&#xff1a;

DAYVALUE("2000/1/1")等于 36526。

DAYVALUE( 1000001)等于 25568 。

注&#xff1a;如果 date 参数格式不规范&#xff0c;则返回1900年 1 月 1 日至当前日期所经历的天数。

例如&#xff1a;若今天为 2020/09/01&#xff0c;DAYVALUE("2008/02/") 等于 44074&#xff0c;DAYVALUE("0.877766")等于 44074

16. HOUR

HOUR(serial_number)&#xff1a;返回某一指定时间的小时数。函数指定 HOUR 为 0(0:00)到 23(23:00)之间的一个整数。

Serial_number&#xff1a;包含所求小时的时间。

示例&#xff1a;

HOUR("11:32:40")等于 11。

17. MINUTE

MINUTE(serial_number)&#xff1a;返回某一指定时间的分钟数&#xff0c;其值是介于 0 与 59 之间的一个整数。

Serial_number&#xff1a;包含所求分钟数的时间。

示例&#xff1a;

MINUTE("15:36:25")等于 36。

18. MONTH

MONTH(serial_number)&#xff1a;返回日期中的月&#xff0c;月是介于 1 和 12 之间的一个数。

Serial_number&#xff1a;含有所求的月的日期&#xff0c;参数为空时默认为当天日期。

注&#xff1a;

FineReport 将日期保存为系列数&#xff0c;一个系列数代表一个与之匹配的日期&#xff0c;以方便用户对日期进行数值式计算。

在 1900 年日期系统中&#xff0c;FineReport 电子表格将 1900 年 1 月 1 日保存为系列数 2&#xff0c;将 1900 年 1 月 2 日保存为系列数 3&#xff0c; 将 1900 年 1 月 3 日保存为系列数 4……依此类推。

如&#xff1a;在 1900 年日期系统&#xff0c;1998 年 1 月 1 日存为系列数 35796。

示例&#xff1a;

MONTH("2004/5/5")等于 5。

MONTH(35796)等于 1。

19. MONTHDELTA

MONTHDELTA(date,delta)&#xff1a;返回指定日期 date 后 delta 个月的日期。

示例&#xff1a;

MONTHDELTA("2008-08-08", 4)等于 2008-12-08。

20. NOW

NOW()&#xff1a;获取当前时间。

示例&#xff1a;

如果系统时间是 2017-06-27 14:58:06&#xff0c; 则&#xff1a;

NOW()等于 2017-06-27 14:58:06。

21. SECOND

SECOND(s erial_number)&#xff1a;返回某一指定时间的秒数&#xff0c;其值是介于 0 与 59 之间的一个整数。

Serial_number&#xff1a;包含所求秒数的时间。

示例&#xff1a;

SECOND("15:36:25")等于 25。

SECOND("15:36:25", "HH:mm:ss")等于 25。

22. TIME

TIME(hour,minute,second)&#xff1a;返回代表指定时间的小数。介于 0:00:00(12:00:00 A.M.)与 23:59:59(11:59:59 P.M.)之间的时间可返回 0 到 0.99999999 之间的对应数值。

TIME(19,43,24)等于 7:43 PM

Hour&#xff1a;介于 0 到 23 之间的数。

Minute&#xff1a;介于 0 到 59 之间的数。

Second&#xff1a;介于 0 到 59 之间的数。

示例&#xff1a;

TIME(14,40,0)等于 2:40 PM。

23. TODATE

TODATE()&#xff1a;函数可以将各种日期形式的参数转换为日期类型。

它有三种参数的形式&#xff1a;

1)参数是一个日期型的参数&#xff0c;那么直接将这个参数返回。

示例&#xff1a;

TODATE(DATE(2007,12,12))返回 2007-12-12 组成的日期。

2)参数是以从1970 年 1 月 1 日 0 时 0 分0 秒开始的毫秒数&#xff0c;返回对应的时间。

示例&#xff1a;

TODATE("1023542354746")返回 2002-6-8 21:19:14。

3)参数是日期格式的文本&#xff0c;那么返回这个文本对应的日期。

示例&#xff1a;

TODATE("2007/10/15")返回 2007-10-15 组成的日期。

TODATE("2007-6-8")返回 2007-6-8 组成的日期。

4)有两个参数&#xff0c;第一个参数是一个日期格式的文本&#xff0c;第二个参数是用来解析日期的格式。

示例&#xff1a;

TODATE("1/15/07","MM/dd/yy")返回 2007-01-15 组成的日期.

注&#xff1a;此处的格式中月份必须大写 MM&#xff0c;年份小写&#xff1a;yy(不可以为yyyy)。天份小写&#xff1a;dd

24. TODAY

TODAY()&#xff1a;是获取当前的日期。

示例&#xff1a;

如果系统日期是 2011-06-20&#xff0c;则&#xff1a;

TODAY()等于 2011-06-20。

25. WEEKDAY

WEEKDAY(Serial_number)&#xff1a;获取日期并返回星期数。返回值为介于0到6之间的某一整数&#xff0c;分别代表星期中的某一天(从星期日到星期六)。

Serial_number&#xff1a;输入的日期。

注&#xff1a;

FineReport 将日期保存为系列数&#xff0c;一个系列数代表一个与之匹配的日期&#xff0c;以方便用户对日期进行数值式计算。

在 1900 年日期系统中&#xff0c;FineReport 电子表格将 1900 年 1 月 1 日保存为系列数 2&#xff0c;将 1900 年 1 月 2 日保存为系列数 3&#xff0c;将 1900 年 1 月 3 日保存为系列数4……依此类推。如在1900 年日期系统&#xff0c;1998 年 1 月 1 日存为系列数 35796。

示例&#xff1a;

WEEKDAY("2005/9/10")等于 6(星期六)。

WEEKDAY("2005/9/11")等于 0(星期日)。

WEEKDAY(35796)等于 4(星期四)。

26. WEEK

1)函数介绍

WEEK(serial_num)&#xff1a;返回一个代表一年中的第几周的数字。其中Serial_num为输入的日期。

2)函数逻辑

年内第一周开始于第一个星期日所对应的日期&#xff0c;此外周的范围为星期日到星期六。

FineReport 将日期保存为系列数&#xff0c;一个系列数代表一个与之匹配的日期&#xff0c;以方便用户对日期进行数值式计算。

在 1900 年日期系统中&#xff0c;FineReport 将 1900/1/1 保存为系列数2&#xff0c;将 1900/1/2 保存为系列数 3&#xff0c;……依此类推。如 1998/1/1 存为系列数 35796。

3)示例&#xff1a;WEEK("2005/1/1") 等于 52(本年第一个星期日前的日期&#xff0c;都算作上一年最后一周的日期)

WEEK("2005/1/6") 等于 1(本年第一个星期日后的日期&#xff0c;从本年开始算起)

WEEK(35796) 等于 52(系列数对应到具体日期&#xff0c;然后转化为第几周)

4)参数修改逻辑WEEK(serial_num,"F1")&#xff1a;采用 Excel 的逻辑&#xff0c;把年内第一个星期日前的日期算作第一周

WEEK(serial_num,"F7")或 WEEK(serial_num)&#xff1a;采用 FineReport 默认逻辑&#xff0c;年内第一个星期日前的日期算作上一年最后一周的日期&#xff0c;本年第一周开始于第一个星期日

例如&#xff1a;WEEK("2019/1/5","F1") 等于 1

WEEK("2019/1/5","F7") 等于 52

WEEK("2019/1/6","F1") 等于 2

WEEK("2019/1/6","F7") 等于 1

27. WEEKDATE

WEEKDATE(year,month,weekOfMonth,dayOfWeek)&#xff1a;返回指定年月的指定周的周几的具体日期。

1)默认周开始于星期日时&#xff0c;此时系统中周的范围为星期日到星期六。

示例&#xff1a;

WEEKDATE(2009,10,2,1)返回的是 2009 年的 10 月的第二个周的第一天即星期天的日期&#xff0c;返回的是 2009-10-04&#xff1b;

最后一个参数 dayOfWeek为-1 时&#xff0c;表示这个周的最后一天。

示例&#xff1a;

WEEKDATE(2009,12,1,-1)返回的是 2009 年的 12 月的第一个周的最后一天即星期六的日期&#xff0c;返回的是 2009-12-05。

2)当设置 周开始于星期一 时&#xff0c;此时系统中周的范围为星期一到星期日。

28. YEAR

YEAR(serial_number)&#xff1a;返回日期中的年。Year是介于1900和9999之间的一个数。

Serial_number&#xff1a;含有所求的年的日期&#xff0c;参数为空时默认为当天日期。

注&#xff1a;

FineReport 将日期保存为系列数&#xff0c;一个系列数代表一个与之匹配的日期&#xff0c;以方便用户对日期进行数值式计算。

在 1900 年日期系统中&#xff0c;FineReport 电子表格将 1900 年 1 月 1 日保存为系列数 2&#xff0c;将 1900 年 1 月  2日保存为系列数 3&#xff0c;将 1900 年 1 月 3 日保存为系列数 4……依此类推。

如&#xff1a;在 1900 年日期系统&#xff0c;1998 年 1 月 1 日存为系列数 35796。

示例&#xff1a;

YEAR("2000/1/1")等于 2000。

YEAR("2006/05/05")等于 2006。

YEAR("1997/04/20")等于 1997。

YEAR(35796)等于 1998。

29. YEARDELTA

YEARDELTA(date, delta)&#xff1a;返回指定日期后delta年的日期。

示例&#xff1a;

YEARDELTA("2008-10-10",10)等于 2018-10-10。

30. LUNAR

LUNAR(year,day,month)&#xff1a;返回当前日期对应的农历时间。year,month,day&#xff1a;分别对应年月日。

示例&#xff1a;

如果需要查询 2011 年 7 月 21 日对应的农历时间&#xff0c;则&#xff1a;

LUNAR(2011,7,21)结果将显示为&#xff1a;辛卯年六月廿一。

LUNAR(2001,7,21)结果显示&#xff1a;辛巳年六月初一 。

注&#xff1a;本公式支持的时间段为 1900-2049 年。



推荐阅读
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 在过去两周中,我们利用 ReportViewer 开发了与生产良率相关的报表,其中每个制程的直通率是所有测试项良率的乘积。由于 ReportViewer 没有内置的累乘函数,因此需要借助自定义代码来实现这一功能。本文将详细介绍实现步骤和相关代码。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 本文详细介绍了Hive中用于日期和字符串相互转换的多种函数,包括从时间戳到日期格式的转换、日期到时间戳的转换,以及如何处理不同格式的日期字符串。通过这些函数,用户可以轻松实现日期和字符串之间的灵活转换,满足数据处理中的各种需求。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 本文详细介绍了如何使用 MySQL 查询特定时间段的数据,包括今天、本周、上周、本月和上个月的数据。适合对 MySQL 查询感兴趣的读者。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
author-avatar
gete
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有