关于日期控件返回值请教大家

我们数据库表日期字段都是用的数字类型

比如‘2023-02-26’是123057  (21世纪23年的第57天)

然后从帆软接收到的日期参数,我们写了一个函数来转换。

image.png

image.png

但是加上函数就全表扫描了。

所以有没有办法把帆软日期控件返回值转换成我们需要的格式,求问

FineReport Zzx9 发布于 2023-2-27 10:21 (编辑于 2023-2-27 10:38)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-27 10:36(编辑于 2023-2-27 11:08)

在帆软上处理日期 找个单元格输入

CONCATENATE(MID($日期,2,1)+1,MID($日期,3,2),FORMAT(DATEDIF(DATEINYEAR($日期,1),$日期,"D")+1,"000"))

然后SQL中引用对应的单元格

image.png

image.png

-------------

image.png

  • Zzx9 Zzx9(提问者) 谢谢,您的这个公式是正确的,不过我们之前有很多报表的是这么写的,所以我想能不能自己搞一个日期控件,然后返回我们需要的这种格式,这样能一劳永逸。但是找了好多都没找到控件是怎么写的
    2023-02-27 11:06 
  • Z4u3z1 Z4u3z1 回复 Zzx9(提问者) 试试预定义控件。你这需求我也是第一次遇到
    2023-02-27 11:08 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-2-27 10:28(编辑于 2023-2-27 10:51)

那就用这日期和指定日期相减,得到这个天数就可以

函数参考

DATESUBDATE(date1,date2,op):返回两个日期之间的时间差。

op表示返回的时间单位:"s",以秒为单位。"m",以分钟为单位。"h",以小时为单位。"d",以天为单位。"w",以周为单位。

示例:

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

===================

你的日期和1686-03-27相减就可以

DATESUBDATE("2023-02-27","1686-03-27","D")

image.png

image.png

  • Zzx9 Zzx9(提问者) 您好,我没太理解您的意思。 也可能是我表达的不清楚吧,我的意思是想在帆软里就把 ‘2023-02-26’ 转换成123057
    2023-02-27 10:41 
  • snrtuemc snrtuemc 回复 Zzx9(提问者) 那2023-02-27是多少,123058吗
    2023-02-27 10:44 
  • Zzx9 Zzx9(提问者) 回复 snrtuemc 是的
    2023-02-27 10:44 
  • snrtuemc snrtuemc 回复 Zzx9(提问者) 就用我给的公式就可以,看修改答案
    2023-02-27 10:50 
  • Zzx9 Zzx9(提问者) 回复 snrtuemc 谢谢,您的这种计算方式是不对的,123058这个是数字第一位是21世纪的1,第二三位是23年,058 是23年的第58天。比如DATESUBDATE(\"2022-12-28\",\"1686-03-27\",\"D\") ,这样算的结果就是122997,这就超出了一年365天了。我的想法是搞一个能返回这种格式的控件
    2023-02-27 11:10 
  • 1关注人数
  • 367浏览人数
  • 最后回答于:2023-2-27 11:08
    请选择关闭问题的原因
    确定 取消
    返回顶部