Javascript 为什么在I';我是从knex.js查询的?

Javascript 为什么在I';我是从knex.js查询的?,javascript,mysql,node.js,knex.js,Javascript,Mysql,Node.js,Knex.js,我的数据库中有一个名为Tasks的表。其中有一个名为Date的列,它是Date类型。有3条记录。 当我查询今天(2020-02-14)的延迟任务时,输出与我预期的不同。所以我的问题是 const delayedTasks = await knex.from('tasks') .select('name', 'date') .where('agent_id', id) .where('date', '<', new Date())

我的数据库中有一个名为Tasks的表。其中有一个名为Date的列,它是Date类型。有3条记录。

当我查询今天(2020-02-14)的延迟任务时,输出与我预期的不同。所以我的问题是

const delayedTasks = await knex.from('tasks')
          .select('name', 'date')
          .where('agent_id', id)
          .where('date', '<', new Date());
预期产量

[
  TextRow { name: 'test task 2', date: 2020-02-12T18:30:00.000Z }
]
当我控制台new Date()时


因此,我的问题是,为什么我得到的查询结果是错误的,因为输出中的日期值是错误的?

您的DB服务器区域和web服务器区域(即时区)是否相同?我认为他们的时区不同。所以你得到了issue@DeepKakkar不,这是本地机器。未托管在服务器中。请尝试将
.debug()
添加到查询中,它将打印Knex生成的查询,直接在您的数据库上运行,查看是否给出相同的结果您的数据库服务器区域和web服务器区域是否相同,即时区相同?我认为他们的时区不同。所以你得到了issue@DeepKakkar不,这是本地机器。未托管在服务器中。请尝试将
.debug()
添加到查询中,它将打印Knex生成的查询,直接在数据库上运行,查看是否给出相同的结果
[
  TextRow { name: 'test task 2', date: 2020-02-12T18:30:00.000Z }
]
2020-02-14T05:53:15.280Z