将14位字符串转换成日期格式

select distinct htno,pono,to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd hh24:mi:ss') as ladle_start_time 

FROM "BGTAMODLL3"."T_ODS_TMMSM21"  

where LDCC_BEGIN_TIME is not null and LDCC_BEGIN_TIME <>'' 

and LDCC_BEGIN_TIME>='${开始}' AND LDCC_BEGIN_TIME<='${结束}'  

这段程序是可以运行的。但是LDCC_BEGIN_TIME这个字段的源格式是‘20230101000000’14位的字符串。我想把这个字符串变成精确到秒的格式,所以用了to_date。

但是把代码变成这样之后:

select distinct htno,pono,to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd hh24:mi:ss') as ladle_start_time 

FROM "BGTAMODLL3"."T_ODS_TMMSM21"  

where LDCC_BEGIN_TIME is not null and LDCC_BEGIN_TIME <>'' 

and to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd hh24:mi:ss')>='${开始}' and to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd hh24:mi:ss')<='${结束}'  

(就是想用日期查询数据,而不是用字符串查询数据) 就报错了。怎么解决?

最终目的是,不想用参数面板输入那14位的字符串去查询数据,而是用具体的日期,精确到秒的格式去查询数据。

源LDCC_BEGIN_TIME 格式:

1.png

1楼提供的方案:

3.png

2楼回答:

2.png

FineReport 帆软用户21wlka79tN 发布于 2023-6-2 09:37 (编辑于 2023-6-5 10:20)
1min目标场景问卷 立即参与
回答问题
悬赏:13 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
坚定的小帆薯Lv7高级互助
发布于2023-6-2 09:39(编辑于 2023-6-2 10:04)

【补充问答】前端用时间格式查询时

查询时需要确保两边结构保持一致,否则报错【如下】、

解决:处理参数格式,保持一致即可【如图二】

to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd hh24:mi:ss')>=to_date('${开始}','yyyy-mm-dd hh24:mi:ss') 

and to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd hh24:mi:ss')<=to_date('${结束}' ,'yyyy-mm-dd hh24:mi:ss') 

image.png

image.png

【初始回答】前端用字符串日期格式直接查询时

这个是oracle吧,可以把to_date改为to_char试试

函数用法:

to_char(sysdate,'yyyy-mm-dd')

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-6-2 09:41(编辑于 2023-6-5 10:42)

'${CONCATENATE(FORMAT(开始,"yyyy-MM-dd"),"00:00:00")}'

'${CONCATENATE(FORMAT(结束,"yyyy-MM-dd"),"00:00:00")}'

select distinct htno,pono,to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd') as ladle_start_time 

FROM "BGTAMODLL3"."T_ODS_TMMSM21"  

where LDCC_BEGIN_TIME is not null and LDCC_BEGIN_TIME <>'' 

and to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd')>='${开始}' and to_date(LDCC_BEGIN_TIME,'yyyy-mm-dd')<='${结束}'  

  • 3关注人数
  • 423浏览人数
  • 最后回答于:2023-6-5 10:42
    请选择关闭问题的原因
    确定 取消
    返回顶部