修改云函数代码页面输入的时间格式,查找时间段数据

云函数代码页面输入的时间格式为2023-07-18,而云后台的时间格式为2023.7.13 14:31:44,需要调整时间格式以查找时间段的所有数据。

调整时间格式的步骤

  1. 在云函数代码中,将输入的日期字符串进行处理,将其转换为与数据库中存储的日期格式相匹配的字符串。
const startDate1 = event.startDate.split("-");
const endDate1 = event.endDate.split("-");

const startDate2 = startDate1.join('.');
const endDate2 = endDate1.join('.');

const startDatestr = startDate2 + ' 00:00:00';
const endDatestr = endDate2 + ' 00:00:00';

在这里,我们将输入的日期字符串分割为年、月、日的数组形式。然后,使用join()方法将数组元素连接为带有点号分隔符的字符串,并添加时间部分(00:00:00)。

  1. 在查询语句中使用新的日期字符串作为条件来搜索时间段内的数据。
query = query.where({
  date: db.command.gte(startDatestr).and(db.command.lte(endDatestr))
});

在这里,我们使用db.command.gte()db.command.lte()方法来指定起始日期和结束日期的条件。这将返回时间段内的所有数据。

示例代码

exports.main = async (event, context) => {
    const db = cloud.database();
    const yddata = db.collection('yddata');
    const pageSize = 1000; // 定义每页显示的数据数量
    const startIndex = 0; // 定义起始索引值
    let query = yddata.where({});

    const startDate1 = event.startDate.split("-");
    const endDate1 = event.endDate.split("-");

    const startDate2 = startDate1.join('.');
    const endDate2 = endDate1.join('.');

    const startDatestr = startDate2 + ' 00:00:00';
    const endDatestr = endDate2 + ' 00:00:00';
  
    if (event.mailNumber) {
        query = query.where({ mailNumber: event.mailNumber });
    }
    if (event.startDate && event.endDate) {
      query = query.where({
        date: db.command.gte(startDatestr).and(db.command.lte(endDatestr))
      });
    }
    const searchData = await query.orderBy('date', 'desc').skip(startIndex).limit(pageSize).get().then(res => {
        if (res.data.length > 0) {
          const data = res.data[0];
          return {
            searchData: data
            // mailNumber:data.mailNumber,
            // images: data.images,
            // describe: data.describe,
            // date: data.date
          };
        } else {
          return {
            error: '未找到相关数据'
          };
        }
      }).catch(err => {
        console.error(err);
        return {
          error: err
        };
      });
      return searchData;
  }

总结

通过将输入日期转换为数据库中存储的格式,并使用适当的查询条件,可以有效地根据时间段查找数据。请注意,您可能还需要根据实际情况对日期格式进行调整。


原文地址: https://www.cveoy.top/t/topic/pT0u 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录