数据转换

各位大神,遇到个问题,看怎么解决:数据库中日期格式是202003这样的,怎么在做报表时,转换成2020-03这种。拜托各位

FineReport 茶香不加糖 发布于 2020-3-25 08:17
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
Doctor_WeiLv7中级互助
发布于2020-3-25 08:27(编辑于 2020-3-25 08:29)

select left(202003,4)+'-'+RIGHT(202003,2)


sql里这样处理,帆软公式里另说



CONCATENATE(left(202003,4),'-',right(202003,2))

  • 茶香不加糖 茶香不加糖(提问者) 帆软公式怎么写呀?数据库日期字段是date
    2020-03-25 08:37 
  • 茶香不加糖 茶香不加糖(提问者) select AREA as 区域 , BRAND as 品牌,CATEGORY as 类别,CONCATENATE(left(date ,4),\"-\",right(date ,2)) as 考核月, MAITEN_TIME as 维修项次,MONTH_SALE_AMOUNT as 样本量 from ods 这个是要查询的字段,日期那这样写吗
    2020-03-25 08:41 
  • Doctor_Wei Doctor_Wei 回复 茶香不加糖(提问者) 第一个是sql的,第二个是公式利用的
    2020-03-25 08:47 
  • Doctor_Wei Doctor_Wei 回复 茶香不加糖(提问者) 把日期替换成你的字段,或者单元格
    2020-03-25 08:47 
  • 茶香不加糖 茶香不加糖(提问者) 回复 Doctor_Wei 用select left(202003,4)+\'-\'+RIGHT(202003,2),出来的数据怎么不是2020-03,是2023
    2020-03-25 10:22 
最佳回答
0
xiaomiliLv6初级互助
发布于2020-3-25 08:35

这个需要看什么数据库,区别也不大其实;方法也有很多;

最佳回答
0
飞段Lv6初级互助
发布于2020-3-25 08:39

在帆软的单元格样式里有这个格式1585096674(1).png

最佳回答
0
指间沙Lv6中级互助
发布于2020-3-25 08:44

可以通过报表数据格式来自定义,也可以通过sql处理,例如mysql的是DATE_FORMAT(NOW(),'%Y-%m),其他数据库都有相应的转换。

最佳回答
0
shirokoLv6资深互助
发布于2020-3-25 09:57(编辑于 2020-3-25 10:46)

反正就是left,right这些字符串处理公式然后再连接。。

你要用在哪?是查询的条件匹配,还是显示方式,还是数据查询时就改格式。

sql里面用在字段处理上 select 后面用sql规则;

条件匹配,用在${}内用帆软规则

报表显示方式可以用形态公式


数据查询时就是写在sql里

比如

select substr(yearmonth,1,4)||'-'||substr(yearmonth,5,2) from table

这个是oracle的语法,其他数据库的字符串连接有用+号的也有用concat函数的,具体要看数据库语法

最佳回答
0
孤陌Lv6资深互助
发布于2020-3-25 10:00

数据列高级 自定义显示 写公式

FORMAT($$$,"yyyy-MM")

  • 7关注人数
  • 441浏览人数
  • 最后回答于:2020-3-25 10:46
    请选择关闭问题的原因
    确定 取消
    返回顶部