使用 sequelize 将 datetime 转换为 where 条件下的列的日期

Posted

技术标签:

【中文标题】使用 sequelize 将 datetime 转换为 where 条件下的列的日期【英文标题】:Convert datetime to date of a column in where condition using sequelize 【发布时间】:2016-10-09 22:57:30 【问题描述】:

好的,

我想在查询时将列日期时间转换为日期。

谁能帮我解决以下给定查询的后续查询?

select * from ev_events where DATE(event_date) <= '2016-10-10'

【问题讨论】:

【参考方案1】:
sequelize.and(
  id: '111',
  sequelize.where(
    sequelize.fn('date', sequelize.col('event_date')), 
    '<=', '2016-10-10'
  )
)

【讨论】:

【参考方案2】:

你可以使用sequelize.fn:

Event.findAll(
  where: sequelize.where(sequelize.fn('date', sequelize.col('event_date')), '<=', '2016-10-10')
)

我不得不猜测你是如何定义你的模型的。

【讨论】:

是的,这就是这样做的方法。我就是这样做的 sequelize.where(sequelize.cast(mods.sequelize.col('event_date'), 'DATE'), '>=', from_date)。但是感谢您的帮助:) 你如何处理这种类型的查询来添加 AND something_id = 45 ? @Sachacr 你可以通过 where: [Sequelize.Op.and]: [ id: 45 , Sequelize.where('date', '=', '2018-05-13') ] 来做到这一点 @KeyurSakaria 在评论中的回答对我有用(我只需要删除模组。)。接受的答案对我不起作用。我收到错误 - “日期”不是函数。

以上是关于使用 sequelize 将 datetime 转换为 where 条件下的列的日期的主要内容,如果未能解决你的问题,请参考以下文章

sequelize存在数据库的时间是DATETIME类型,怎么查询时间段的数据

[转]Node.JS使用Sequelize操作MySQL

如何通过sequelize在where语句中使用db函数

[转] 关于“时间”的一次探索

[转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

将 javascript 中的 timestamp(时间戳) 转 c# 的 datetime类型