Page tree
Skip to end of metadata
Go to start of metadata

1. 内容概述



SQLite数据库中的日期时间字段值存储为一个浮点数,例如:43425.455467963。

其含义为:

  • 整数部分为自1899-12-30的天数
  • 小数部分为自凌晨0点的天数,0.5即中午12点整

为了便于阅读,我们经常需要将其转换为 yyyy-MM-dd HH:mm:ss 形式。

在系统中,您可以通过以下三种方法进行转换。


2. 通过自定义表实现转换



在数据集中添加自定义表,并采用下面这样的SQL语句,创建自定义数据集:

select strftime('%Y-%m-%d %H:%M:%S','1899-12-30','+' || 原字段名 || ' day') 新字段名 from 表名

例如:select ID, FGC_CreateDate, strftime('%Y-%m-%d %H:%M:%S','1899-12-30','+' || FGC_CreateDate || ' day') 创建日期 from 日结填报


输入SQL查询命令:


基于这样的数据集,即可得到“真正的”日期,如下图:


3. 通过计算字段实现转换



在数据集中还可以通过添加一个计算字段实现转换。


数据集计算字段定义:

DateAdd(s, ([FGC_CreateDate]-Floor([FGC_CreateDate]))*24*60*60, DateAdd(d,Floor([FGC_CreateDate] ),'1899-12-30') )

其中FGC_CreateDate为字段名。


仅勾选FGC_CreateDate字段,然后进行预览,可见已得到正确的日期时间字段。


4. 通过表达式实现转换



对于制作报表来说,除了使用以上两种方法在数据集中实现日期时间转换外,还可以通过使用表达式函数DateAdd实现。

例如,我们使用原始字段制作的表格预览效果如下图,日期列显示为浮点数。

实现分析:

FGC_Create Date”字段由整数部分和小数部分组成,我们需要转换天数以及时分秒数。
使用 =DateAdd("s", (Fields!FGC_CreateDate.Value-Floor(Fields!FGC_CreateDate.Value))*24*60*60, DateAdd("d",Floor(Fields!FGC_CreateDate.Value ),"1899-12-30") )。


提示

如果需转换的字段只有整数部分,那我们只需要转换天数即可。使用 =DateAdd("d",Fields!ADate.Value,"1899-12-30") 


打开表达式编辑器:



输入表达式:


转换后,预览报表可见转换成功。


  • No labels