Oracle中时间字段如果是varchar2类型可以不经过任何转换直接进行between查询

//原SQL版拼SQL语句写法
FsWhere := ' and  cast(a.bbtime as DateTime) between ' + QuotedStr(FormatDateTime('YYYY-MM-DD', edtBBtime.DateTime))
      + ' and ' + QuotedStr(FormatDateTime('YYYY-MM-DD', edtBEtime.DateTime) + ' 23:59');

//SQL语句:
and  cast(a.bbtime as DateTime) between '2018-01-01' and '2019-11-14 23:59'


经测试,时间字段如果varchar2可以不经过任何转换直接进行between查询
   FsWhere := ' and  a.bbtime between ' + QuotedStr(FormatDateTime('YYYY-MM-DD', edtBBtime.DateTime))
      + ' and ' + QuotedStr(FormatDateTime('YYYY-MM-DD', edtBEtime.DateTime) + ' 23:59');

//oracle库中可以正常工作的SQL语句写法
and  a.bbtime between '2018-01-01' and '2019-11-14 23:59'

posted @ 2022-10-04 00:15  IT情深  阅读(223)  评论(0编辑  收藏  举报