按日期范围的小时数进行分组
Sequelize grouping by hours of a date range
我是 sequelize (postgres) 的新手,我无法在文档中找到如何 select 一天中的几个小时(日期范围),按它们分组并执行计数。
查询如下所示:
SELECT
COUNT (*),
EXTRACT (HOUR FROM paid_at) AS HOUR
FROM
transactions
WHERE paid_at >= '2015-01-01 00:00:00' AND paid_at <= '2015-01-31 23:59:59'
GROUP BY
HOUR
ORDER BY hour asc
有人能给我指路吗?我发现 sequelize 文档非常非常基础。缺少高级示例。
这是我使用 Sequelize 3 想出的解决方案。
var payments_by_hour = await Payment.findAll({
where: {
paid_at: {
$lte: '2015-01-31 23:00:00',
$gte: '2015-01-01 00:00:00'
}
},
attributes: [
[ sequelize.fn('date_trunc', 'hour', sequelize.col('updated_at')), 'hour'],
[ sequelize.fn('count', '*'), 'count']
],
group: 'hour'
});
您也可以使用纪元微秒值(JS 和 PSQL 的原生值)来表示
这样的日期
$lte: new Date(),
$gte: new Date(new Date() - 24 * 3600 * 1000)
我是 sequelize (postgres) 的新手,我无法在文档中找到如何 select 一天中的几个小时(日期范围),按它们分组并执行计数。
查询如下所示:
SELECT
COUNT (*),
EXTRACT (HOUR FROM paid_at) AS HOUR
FROM
transactions
WHERE paid_at >= '2015-01-01 00:00:00' AND paid_at <= '2015-01-31 23:59:59'
GROUP BY
HOUR
ORDER BY hour asc
有人能给我指路吗?我发现 sequelize 文档非常非常基础。缺少高级示例。
这是我使用 Sequelize 3 想出的解决方案。
var payments_by_hour = await Payment.findAll({
where: {
paid_at: {
$lte: '2015-01-31 23:00:00',
$gte: '2015-01-01 00:00:00'
}
},
attributes: [
[ sequelize.fn('date_trunc', 'hour', sequelize.col('updated_at')), 'hour'],
[ sequelize.fn('count', '*'), 'count']
],
group: 'hour'
});
您也可以使用纪元微秒值(JS 和 PSQL 的原生值)来表示
这样的日期$lte: new Date(),
$gte: new Date(new Date() - 24 * 3600 * 1000)