mysql - 如何使用当前日期的 order by 进行查询

标签 mysql node.js sequelize.js

我想加入 2 个表,并希望首先根据当前日期显示最新帖子,例如今天的发布帖子将显示在顶部,然后是 future 日期,然后将显示过去日期的帖子。我需要在 sequelize 中编写此查询。我收到未知列错误'postModel.DATE(published_at)' 我的 Sequelize 查询是这样的 -

postModel.findAndCountAll({
               include:[
                { model:userModel, 
                  where: { user_id:  user_id},
                  required:false
                  },
                ],
                order: [
                   [ 'DATE(published_at) = DATE(NOW())', 'DESC']
                ],
                limit: limit,
                offset: offset,
                      
        });
以下原始查询对我来说效果很好
SELECT * FROM posts as P JOIN user as U ON U.id = P.user_id
where
ORDER BY
    DATE(P.published_at)=DATE(NOW()) DESC,
    DATE(P.published_at)<DATE(NOW()) DESC,
    DATE(P.published_at)>DATE(NOW()) ASC`

最佳答案

删除您的日期函数并像这样查询。

postModel.findAndCountAll({
  include: [{ model: userModel, where: { user_id: user_id },required:false }],
  where: {
    published_at: {
      [Op.eq]: Date(NOW()),
    },
  },
  order: [["published_at", "DESC"]],
  limit: limit,
  offset: offset,
});

关于mysql - 如何使用当前日期的 order by 进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62881981/

相关文章:

node.js - 什么是Procfile?和 Web 和 Worker

mysql - 相当于 DB2/PostGIS 函数 "ST_Intersection"的 MySQL 函数是什么?

php - 网站/数据库文本编码问题

php - Laravel:从 View 添加字段(用户:批量可分配属性)

mysql - 如何始终接收相同的日期格式以从区域集日期格式日期选择器(ui jquery)插入sql表

javascript - nodejs 请求 promise url 位置未显示在 header 中

javascript - 'disconnect' 事件(服务器端)上套接字的客户端范围会发生什么情况

mysql - 在 NodeJS 中 Sequelize : Inner JOIN implementation Failure

sql-server - Sequelize JS - 如何处理 Sequelize 不支持的 SQL Server 数据类型

javascript - 为什么 save() 在 Sequelize 中不起作用?