⼩程序使⽤云数据库,查询某个时间范围内的数据,显⽰在页⾯上并且可以导出到桌⾯的excel表格
我要实现的功能
1、根据⽇期范围查询云数据库
2、把数据库⾥⾯的符合查询条件的数据显⽰在页⾯上
3、点击导出按钮,把数据导出到excel表格⾥⾯
来看⼀下我的效果
根据⽇期范围查询云数据库
云开发中查询某个时间范围,也就是⼤于或等于某个时间,⼩于或等于某个时间;
这个语句是如下的格式,但是注意_.gte()这个⾥⾯的数,只能是Date或者是Number类型的!因此你的date数据,要么是时间戳要么是Date类型的!不然你不会查询得出你想要的结果的
const db = wx.cloud.database({});
const cont = db.collection('bill');
const _ = dbmand
cont.where({
date: _.gte(that.data.sdate).and(_.lte(that.data.edate)) }).get({
//如果查询成功的话
success: res => {
console.log("信息查询:",res.data)
}
})
我的Date是时间戳类型,也就是Number类型
我在执⾏插⼊数据库的时候,获取当前的时间戳
getNowFormatDate:function() {//获取当前时间
var time = und(new Date() / 1000)
console.log("时间戳位:", time);
return time;
},
我现在要查询4⽉17⽇到4⽉18⽇之间的数据
第⼀步、我需要⼀个时间选择器
query.wxml
<!-- 根据时间查询 -->
<view class="section">
<picker mode="date" value="{{sdate}}" start="2010-09-01" end="2050-09-01" bindchange="bindSDateChange" > <view class="picker">
请选择开始查询⽇期 {{sdate}}
</view>
</picker>
<picker mode="date" value="{{edate}}" start="2010-09-01" end="2050-09-01" bindchange="bindEDateChange"> <view class="picker">
请选择结束查询⽇期 {{edate}}
</view>
</picker>
</view>
<view><button bindtap="queryUser" class="info">登记信息查询</button></view>
<!-- 根据时间查询 -->
第⼆步、我们需要获取这两个时间,把这两个时间带到我们想要显⽰信息的页⾯,也就是user页⾯query.js
// pages/query/query.js
Page({
data: {
sdate:'',
edate:''
},
onReady: function () {
var that = this;
var tm = Date()
that.setData({
sdate:tm,
edate:tm
})
},
//登记信息查询
queryUser:function(){
//把时间接受过来传给user页⾯
var sdate=this.data.sdate+" 00:00:00"
var edate = this.data.edate + " 23:59:59"
//变成时间戳
wx.navigateTo({
url: '../user/user?sdate=' + sdate + "&edate=" + edate
});
},
//账单信息查询
bindSDateChange: function (e) {
this.setData({
sdate: e.detail.value
})},
bindEDateChange: function (e) {
this.setData({
edate: e.detail.value
})
}
})
查询并且显⽰
/user/user.js页⾯
// pages/user/user.js
Page({
/**
* 页⾯的初始数据
*/
data: {
sdate:0,
edate:0,
list:[]
},
onLoad: function (options) {
var that = this;
that.setData({ //this.setData的⽅法⽤于把传递过来的id转化成⼩程序模板语⾔ sdate: und(new Date(options.sdate).getTime() / 1000),
edate: und(new Date(options.edate).getTime() / 1000),
})
//查询数据库中的表信息显⽰在页⾯上⾯
//⽇期查询
//1、引⽤数据库
const db = wx.cloud.database({});
const cont = db.collection('info');
//2、开始查询数据了 news对应的是集合的名称
const _ = dbmand
cont.where({
date: _.gte(that.data.sdate).and(_.lte(that.data.edate))
}).get({
//如果查询成功的话制作查询类小程序
success: res => {
//这⼀步很重要,给ne赋值,没有这⼀步的话,前台就不会显⽰值
var list = res.data
//处理⼀下数据的时间格式
for (var i = 0; i < list.length; i++) {
list[i].date = that.dateFormat(list[i].date);
}
//这⼀步很重要,给ne赋值,没有这⼀步的话,前台就不会显⽰值
that.setData({
list: list
})
}
})
/
/⽇期查询
//查询数据库中的表信息显⽰在页⾯上⾯
},
//把时间戳改成字符串
dateFormat: function (timestamp) {
var f = new Date(timestamp * 1000);
var year = f.getFullYear();
var month = (f.getMonth() + 1) > 10 ? (f.getMonth() + 1) : '0' + (f.getMonth() + 1);
var day = f.getDate() > 10 ? f.getDate() : '0' + f.getDate();
var hour = f.getHours() > 10 ? f.getHours() : '0' + f.getHours();
var minute = f.getMinutes() > 10 ? f.getMinutes() : '0' + f.getMinutes();
var second = f.getSeconds() > 10 ? f.getSeconds() : '0' + f.getSeconds();
var tm = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
return tm
},
//把时间戳改成字符串
export(){
let that = this
wx.cloud.callFunction({
name: "excel",
data: {
userdata: that.data.list,
},
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论