SQL中分别取年月日和时间怎么取

SELECT订单ID,case when '${type}'='天' then FORMAT(订单.订购日期,'hh')when '${type}'='月' then FORMAT(订单.订购日期,'DD')when '${type}'='年' then FORMAT(订单.订购日期,'MM')else FORMAT(订单.订购日期,'YYYY') END AS DATEFROM 订单 where 1=1 ${if(type=="天"," and date(订购日期)='"+ date +"'",if(type=="月"," and strftime('%m',订单.订购日期)='"+ month+"'"+" and strftime('%Y',订单.订购日期)='"+ year+"'"," and strftime('%Y',订单.订购日期)='"+ year+"'"))}

一开始使用DATE_FORMAT 但是报错,换成了FOEMAT,但是好像不行,可以用MONTH或者YEAR截取出来吗,但是时间怎么截取,有点想不通了,因为是直接用在图表的,所以不能再单元格二次处理

image.png数据按照年月日替换的

FineReport yzmi4wK81733224 发布于 2023-7-26 11:34
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-7-26 11:53

select * from 表 

where 1=1 

${if(type='天',"and 字段=",if(type='月',"and 字段=",if(type='年',"and 字段=","")))}

最佳回答
0
shirokoLv6资深互助
发布于2023-7-26 13:38(编辑于 2023-7-26 13:38)

为啥同时用两个呢又有 strftime 又有 DATE_FORMAT 

这个东西跟数据库有关,不知道你是什么数据库,但是测试了可以使用之后统一用一种函数就行了

  • 3关注人数
  • 175浏览人数
  • 最后回答于:2023-7-26 13:38
    请选择关闭问题的原因
    确定 取消
    返回顶部