关于Oracle查询时间是字符串类型的范围

关于Oracle查询时间是字符串类型的范围

遇到一个Oracle数据库中一个存储时间的字段不是时间类型,但是要查询时间范围

该字段属性是varcher2 类型

node.js代码

//获取开始时间和结束时间  start=2021-11-08%2000:00:00&end=2021-11-09%2000:00:00
var starttime = req.query.start;
var endtime = req.query.end;
 var s = ' 00:00:00' //因为数据库时间的格式是yyyy/mm/dd 24h:mi:ss
//如果时间不为undefined(这里是时间为空是node后台输出的undefined)
if (starttime!==undefined&&starttime!==''){
    var date = new Date(starttime)
    starttime = date.toLocaleDateString().split('-').join('/') //2021/11/8
    starttime = starttime+s; //2021/11/8 00:00:00
    sql = sql+' AND TIME >= (\''+starttime+'\')'
}
if (endtime!==undefined&&endtime!==''){
    var dates = new Date(endtime)
    endtime = dates.toLocaleDateString().split('-').join('/')
    endtime = endtime +s;
   sql = sql+' AND TIME <= (\''+endtime+'\')'
}

注:因为ES6中已经去掉了Format() 的方法,所以这里我们使用toLocaleDateString()

数据库中我们尽量把存的时间设置为时间类型,这样不仅规范,而且减少了不必要的代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值