如何使用 Postgres 和 Knex.js 查询特定月份的日期字段
How to query a date field for a specific month with Postges and Knex.js
我正在使用 Knex.js 和 Postgres 设置新的日期查询。我需要 return 来自 table.
的特定月份的所有行
这是一个简单的应用 API。我已经设法 return 我想要的 table 中的所有字段,但不知道如何查询特定月份的日期字段。我使用 Knex.js 作为我的查询构建器并具有以下内容:
db('table').select()
.where('Month(date)', '=', 0 ); //this field where I am lost,
sql我认为会做的工作是:EXTRACT(MONTH FROM dateColumn::date) = 1
我现在收到一个错误。但我希望查询 return 一月份的所有日期字段。我知道我可以使用 .whereRaw()
字段,但我不是 100% 确定如何使用它,因为文档没有提供日期字段的任何用例。
供参考,我要查询的列date
格式为date
也许是这样:
db('table').where(db.raw('EXTRACT(MONTH FROM ??::date)', ['dateColumn']), 0)
我设法通过使用 knex 的 .whereRaw()
API 让它工作。
.andWhereRaw(`EXTRACT(MONTH FROM dateColumn::date) = ?`, [monthVariable])
我不太清楚为什么,但它只适用于我的 dateColumn
的 ::date
后缀。这会将我的 dateColumn 转换为 postgres dateType。令人困惑的部分是 dateColumn
已经是 date
类型。
我正在使用 Knex.js 和 Postgres 设置新的日期查询。我需要 return 来自 table.
的特定月份的所有行这是一个简单的应用 API。我已经设法 return 我想要的 table 中的所有字段,但不知道如何查询特定月份的日期字段。我使用 Knex.js 作为我的查询构建器并具有以下内容:
db('table').select()
.where('Month(date)', '=', 0 ); //this field where I am lost,
sql我认为会做的工作是:EXTRACT(MONTH FROM dateColumn::date) = 1
我现在收到一个错误。但我希望查询 return 一月份的所有日期字段。我知道我可以使用 .whereRaw()
字段,但我不是 100% 确定如何使用它,因为文档没有提供日期字段的任何用例。
供参考,我要查询的列date
格式为date
也许是这样:
db('table').where(db.raw('EXTRACT(MONTH FROM ??::date)', ['dateColumn']), 0)
我设法通过使用 knex 的 .whereRaw()
API 让它工作。
.andWhereRaw(`EXTRACT(MONTH FROM dateColumn::date) = ?`, [monthVariable])
我不太清楚为什么,但它只适用于我的 dateColumn
的 ::date
后缀。这会将我的 dateColumn 转换为 postgres dateType。令人困惑的部分是 dateColumn
已经是 date
类型。