oracle时间戳

 SQL 中 to_char(SORTRESTIMESTAMP,"+"'"+"yyyy-mm-dd hh24:mi:ss"+"')"+" between "+"'"+starttime+"'"+" and "+ "'"+endtime+"'" 

不起作用

SORTRESTIMESTAMP为oracle 时间戳字段TIMESTAMP(6),如果SORTRESTIMESTAMP为时间字段 OK

SQL 代码片段:

WHERE CMDSTATUS=70 AND SORTRESULTSORTER='Successful Sort.' AND PHYSICALSORTERCODE='DSPSORTER' and

1=1 ${if(len(barcode)> 0,"and  barcode ='"+barcode+"'",

 "and to_char(SORTRESTIMESTAMP,"+"'"+"yyyy-mm-dd hh24:mi:ss"+"')"+" between "+"'"+starttime+"'"+" and "+ "'"+endtime+"'")

                 }

FineReport yzm128012 发布于 2023-4-26 11:20 (编辑于 2023-4-26 15:19)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
FANSHUzwLv5中级互助
发布于2023-4-26 11:22

to_char(SORTRESTIMESTAMP,'yyyy-mm-dd hh24:mi:ss')

最佳回答
0
CD20160914Lv8专家互助
发布于2023-4-26 11:23(编辑于 2023-4-26 11:27)

换成这样,本来是时间字段就不要转换了,直接用日期对比,比文本快!!!

WHERE 

CMDSTATUS=70 

AND SORTRESULTSORTER='Successful Sort.' 

AND PHYSICALSORTERCODE='DSPSORTER' 

${if(len(barcode)> 0,"and  barcode ='"+barcode+"'","")}

${if(len(starttime)=0,"","and SORTRESTIMESTAMP>=to_date('"+starttime+"','yyyy-mm-dd')")}

${if(len(endtime)=0,"","and SORTRESTIMESTAMP<to_date('"+starttime+"','yyyy-mm-dd')+1")}

image.png

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-4-26 11:24

不应该这样么

image.png

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