strftime  不是可识别函数 把示例里面的功能移植到自己的报表上面,SQLserve2012

${if(type='day', " and day(dbo.t0_C0019_d08.F4) >= '" + 开始日期 + "' and day(dbo.t0_C0019_d08.F4)<='" + 结束日期 + "'", "")}

${if(type='month', " and cast(strftime('%m',dbo.t0_C0019_d08.F4) as int) = "+ 月 + " and strftime('%Y',dbo.t0_C0019_d08.F4) = '" + 年+"'", "")}

${if(type='year', " and strftime('%Y',dbo.t0_C0019_d08.F4) = '" + 年+"'", "")}

${if(len(是否完结)==0,"","and dbo.t0_C0017.F42 in ('"+是否完结+"')")}

${if(len(生产车间)==0,"","and t0_C0019_d08.F1 in ('"+生产车间+"')")} 

${if(len(生产工序)==0,"","and t0_C0019_d08.F2 in ('"+生产工序+"')")}

3E9E049C-705A-42c3-A5B2-45FE98FADC1D.png


FineReport shuyeshuye 发布于 2019-1-1 18:50 (编辑于 2019-1-1 19:22)
1min目标场景问卷 立即参与
回答问题
悬赏:6 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
touyuan001Lv6中级互助
发布于2019-1-1 21:39

strftime('%Y',dbo.t0_C0019_d08.F4)


可以改成 left(dbo.t0_C0019_d08.F4,4)

或substring(dbo.t0_C0019_d08.F4,1,4)

  • shuyeshuye shuyeshuye(提问者) 是数据库支持的问题吗?示例里面就没有问题,放到我做的报表上面,SQLserver2012上面就要报错!
    2019-01-02 08:43 
  • touyuan001 touyuan001 回复 shuyeshuye(提问者) 是的。strftime 在SqlServer中不存在
    2019-01-02 08:44 
  • shuyeshuye shuyeshuye(提问者) ${if(type1=\'day\', \" and dbo.t0_C0019_d08.F4 >= \'\" + 开始日期 + \"\' and dbo.t0_C0019_d08.F4<=\'\" + 结束日期 + \"\'\", \"\")} ${if(type1=\'month\', \" and datepart(mm,dbo.t0_C0019_d08.F4) = \"+ 月 + \" and datepart(yy,dbo.t0_C0019_d08.F4) = \'\" + 年+\"\'\", \"\")} ${if(type1=\'year\', \" and datepart(yy,dbo.t0_C0019_d08.F4) = \'\" + 年+\"\'\", \"\")} SQL有问题,以上代码,官方给出,已经解决!
    2019-01-02 16:00 
  • touyuan001 touyuan001 回复 shuyeshuye(提问者) 666
    2019-01-02 16:28 
  • 2关注人数
  • 711浏览人数
  • 最后回答于:2019-1-1 21:39
    请选择关闭问题的原因
    确定 取消
    返回顶部