FineReport中查询出的字段是字符串格式,设置成日期格式,显示变成了统一的1970-01-01



FineReport 七雪海 发布于 2020-5-20 16:47
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
张洪威Lv6高级互助
发布于2020-5-20 16:49(编辑于 2020-5-20 17:09)

G2单元格用公式就能获取日期了

=left(F2,4)+"-"+mid(F2,5,2)+"-"+right(F2,2)



=left($$$,4)+"-"+mid($$$,5,2)+"-"+right($$$,2)


image.png

  • 七雪海 七雪海(提问者) 这样可以是可以,但是我要多设置一列无效的数据了
    2020-05-20 17:04 
  • 张洪威 张洪威 回复 七雪海(提问者) 。。。右键隐藏列或者条件属性隐藏列。或者用更新回答的公式形态。
    2020-05-20 17:05 
  • 七雪海 七雪海(提问者) 回复 张洪威 直接F2单元格上设置自定义公式:CONCATENATE(left($$$,4)+\"-\"+mid($$$,5,2)+\"-\"+right($$$,2)) 这样比较简便,而且不会受原始数据位置的改变影响,还是谢谢你~
    2020-05-20 17:10 
  • 张洪威 张洪威 回复 七雪海(提问者) 都一样,都是用截取加拼接,SELECT SUBSTR(\'20200202\',1,4)||\'-\'||SUBSTR(\'20200202\',5,2)||\'-\'||SUBSTR(\'20200202\',7,2) 这是sqlite的实现语法
    2020-05-20 17:15 
  • 七雪海 七雪海(提问者) 回复 张洪威 可以,SQLite不太熟悉,不过平时也不用这个。有些报表工具字符串‘20200101’是可以直接自定义格式变成2020-01-01,这里需要设置公式还是有点不方便。
    2020-05-20 17:31 
最佳回答
0
cherry团子Lv6中级互助
发布于2020-5-20 16:52

数据库日期处理一下看看 strftime('%Y-%m-%d',日期) as 日期

  • 七雪海 七雪海(提问者) 我连接的数据库是内置的FRdemo,SQLite类型,date函数和strftime函数我都试过,加strftime函数2009-10-12变成了5029-39-09,不知道该用什么函数转换
    2020-05-20 17:00 
  • cherry团子 cherry团子 回复 七雪海(提问者) 自己截取 再拼接呢? substr(日期,1,4)||\'-\'||substr(日期,5,2)||\'-\'||substr(日期,6,2) as 新日期
    2020-05-20 17:16 
  • 七雪海 七雪海(提问者) 回复 cherry团子 可以,不过还是字符类型,日期格式后期要调整不太方便,不纠结了,多谢~
    2020-05-20 17:26 
最佳回答
0
门下拾阳Lv5初级互助
发布于2020-5-20 16:52

image.png

  • 七雪海 七雪海(提问者) 这么设置可以,是否有更简单的方式呢,连接的数据库是内置的FRdemo,SQLite类型,我用date函数转换成日期格式显示的不是正常的日期。
    2020-05-20 17:08 
  • 门下拾阳 门下拾阳 回复 七雪海(提问者) 目前只能够通过拼接的方式实现
    2020-05-20 17:36 
  • 七雪海 七雪海(提问者) 回复 门下拾阳 好的,谢谢
    2020-05-20 17:46 
最佳回答
0
用户W7029742Lv4见习互助
发布于2021-3-23 14:50

只能是源数据格式是2019-09-02这种格式,转过去才行,20190902这种不行

  • 5关注人数
  • 2520浏览人数
  • 最后回答于:2021-3-23 14:50
    请选择关闭问题的原因
    确定 取消
    返回顶部