我有一个类型为 timestamp
的列。我需要按给定日期选择所有记录。在 sql 中它是这样的:
select * from "table" where "date"::date = '2015-08-22';
我试过以下:
db('table').select().where('date::date', '=', date);
但这会引发错误
error: select * from "table" where "date::date" = $1 - column "date::date" does not exist
因为knex地方引号错了。
有什么办法可以执行这样的查询吗?或者我应该使用 whereRaw
?
最佳答案
对于像这样的特定于方言的功能,您通常需要使用 knex.raw
.在这种情况下,您可以简写 whereRaw
.
db('table').select().where(knex.raw('??::date = ?', ['date', date]));
db('table').select().whereRaw('??::date = ?', ['date', date]);
关于node.js - 如何在 knex.js 中使用 postgres::date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013605/