我陷入了逻辑或语法问题,我从堆栈中尝试了很多东西。但是我没有得到关于我的问题的确切解决方案。
问题
我有带有以下列的abc表
╔════╦═════════╦═════════════════════╦═══════╗
║ id ║ success ║ transactionTime ║ value ║
╠════╬═════════╬═════════════════════╬═══════╣
║ 1 ║ 1 ║ 2018/09/12 10:50:00 ║ 10 ║
╠════╬═════════╬═════════════════════╬═══════╣
║ 2 ║ 0 ║ 2018/09/13 10:58:00 ║ 12 ║
╠════╬═════════╬═════════════════════╬═══════╣
║ 3 ║ 1 ║ 2018/09/13 10:55:00 ║ 34 ║
╚════╩═════════╩═════════════════════╩═══════╝
我想要显示两个日期之间的所有数据;如果特定日期不存在任何行,则使用sequelize在所有列中显示零;
我了解SQL,但不了解如何使用Sequilze ORM
我已经尝试过了
startDate = moment().subtract(7, 'days').format('YYYY-MM-DD 00:00:00');
endDate = moment().format('YYYY-MM-DD 23:59:59');
const Record = await db.abc.count({
where: {
transactionTime: {
$between: [
startDate,
endDate,
],
},
},
attributes: [[sequelize.fn('DATE_FORMAT', sequelize.col('transactionTime'), '%Y-%m-%d'), 'day']],
group: [sequelize.fn('DAY', sequelize.col('transactionTime'))],
});
我正在获得以下输出
day Count
2018/09/12 1
2018/09/13 2
预期输出:
day Count
2018/09/08 0
2018/09/09 0
2018/09/10 0
2018/09/11 0
2018/09/12 1
2018/09/13 2
帮帮我,我是续集新手。