数据集按日期无法查询,即使查询数据结果是空,是不是BUG?

SELECT 部门,单位  ,创建日期

  FROM View_Planb

  where cast(计划结束 as datetime) between ${rqa} and ${rqb}

即使调整为

SELECT 部门,单位  ,创建日期

  FROM View_Planb

  where year(cast(计划结束 as datetime)) between year(${rqa}) and year(${rqb})

查询结果也是空,,但是去掉条件,就可以

FineReport jiayu2018 发布于 2022-1-18 16:16 (编辑于 2022-1-18 16:19)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
烟尘Lv6高级互助
发布于2022-1-19 09:33(编辑于 2022-1-19 09:36)

首先,两个参数应该加上单引号。

可能的问题:

1、两个参数${rqa}和${rqb}不是标准的时间格式;

2、${rqb}<${rqa};

3、【计划结束】不是标准的时间格式,转datetime时转成了1900-01-01。

排查一下

建议:sqlserver的话,涉及到时间判断按下面例句写:

SELECT 部门,单位  ,创建日期

  FROM View_Planb

  where convert(varcahr(10),cast(计划结束 as date),23) between '${rqa}' and '${rqb}'

两个日期参数格式设为yyyy-MM-dd

最佳回答
0
luojian0323Lv7资深互助
发布于2022-1-18 19:58

between and 

不行就改用 >=   and <=

最佳回答
0
CD20160914Lv8专家互助
发布于2022-1-19 09:39

SELECT 部门,单位  ,创建日期

  FROM View_Planb

  where cast(计划结束 as datetime) between '${rqa}' and '${rqb}'

这样呢?

  • 4关注人数
  • 542浏览人数
  • 最后回答于:2022-1-19 09:39
    请选择关闭问题的原因
    确定 取消
    返回顶部