如何在knex.js中使用postgres :: date

Gle*_*ift 4 postgresql date node.js knex.js

我有一列type timestamp。我需要选择给定日期的所有记录。在sql中,它类似于:

select * from "table" where "date"::date = '2015-08-22';
Run Code Online (Sandbox Code Playgroud)

我尝试了以下操作:

db('table').select().where('date::date', '=', date);
Run Code Online (Sandbox Code Playgroud)

但这会引发错误

错误:从“表”中选择*,其中“日期::日期” = $ 1-列“日期::日期”不存在

因为knex位置引用错误。

有什么方法可以执行这种查询吗?还是我应该使用whereRaw?

Rhy*_*den 8

对于像这样的方言特定功能,通常需要使用knex.raw。在这种情况下,您可以使用简写形式whereRaw。

db('table').select().where(knex.raw('??::date = ?', ['date', date]));
db('table').select().whereRaw('??::date = ?', ['date', date]);
Run Code Online (Sandbox Code Playgroud)