如何创建查询以获取给定月份的数据?

时间:2020-10-25 11:13:05

标签: javascript typescript nestjs typeorm

我必须使用typeorm从数据库中获取所有数据,但只能获取给定月份的数据。

在我的数据库中:

date-service: 2020-10-25

我尝试以这种方式创建查询,但是它返回了我所有的数据,但是我只需要给定的月份(我提供的日期就像完整的日期一样),因此如果我提供了2020-09-10,则需要获取第9个月的所有数据。

我的查询:

const data = await this.conn.getRepository(Order).createQueryBuilder("order").getRawMany();

如何创建查询以仅获取给定月份的数据?

感谢您的回答

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。您可以为查询提供一个日期范围,例如使用力矩,date-fns等从给定日期提取的月份的开始和结束日期

在处理很棒的日期时,我通常使用 moment.js https://momentjs.com/docs/#/manipulating/

let date = 2020-09-10;

const data = await this.conn.getRepository(Order)
    .createQueryBuilder("order")
    .where('date-service >= :after', { after: moment(date).startOf('month').format('YYYY-MM-DD') })
    .andWhere('date-service < :before', { before:  moment(date).endOf('month').format('YYYY-MM-DD') })
    .getRawMany();