node.js - 如何在nodejs中将 'select if'函数与sequ​​elize一起使用

标签 node.js postgresql sequelize.js

我正在nodejs中开发一个rest api。我正在使用sequelize库 postgresql 数据库。

通过nodejs中的sequelize,我想获得一个临时列来管理一些值。我有两列 vip_startvip_end。这些列采用 DataTypes.DATEONLY 格式。

当我选择所有列时,我想比较两个日期,最后创建一个包含答案的新列。如果为 true,则 1,否则 0。然后我想按 VIP_ANSWER(1 或 0) 对选定的行进行排序。

在 mysql 中它是这样解决的:

( SELECT IF (CURDATE( ) >= DATE( vip_start ) AND CURDATE( ) <= DATE( vip_end ), 1, 0 ) ) as vip

如何在 Sequelize 中实现它? :

const datetime = new Date();
return Phones
    .findAll({
        attributes: ['id', 'description',  'vip_start', 'vip_end','user_id' ],//I want to there new column like vip_answer [1,0] and order by this values
         where: {
             enabled: 1,
             vip_start: { $lte: datetime }, // in there i am stopped (((
         },
       })
    .then(phone => res.status(200).send(phone));

任何帮助将不胜感激。

最佳答案

只需添加

[ sequelize.literal('( SELECT IF (CURDATE( ) >= DATE( vip_start ) AND CURDATE( ) <= DATE( vip_end ), 1, 0 ) )'),'vip']

到您的属性列表:

attributes: ['id', 'description',  'vip_start', 'vip_end','user_id' , [ sequelize.literal('( SELECT IF (CURDATE( ) >= DATE( vip_start ) AND CURDATE( ) <= DATE( vip_end ), 1, 0 ) )'),'vip'] ]

关于node.js - 如何在nodejs中将 'select if'函数与sequ​​elize一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51532000/

相关文章:

c++ - 可以构建自定义 node.js 插件但不能包含

node.js - 如何正确使用 package.json 中的 "keywords"属性?

node.js - 如何使用 "Blank Node.js"模板在 Visual Studio 2019 中调试 React 应用程序

sql - 在 PostgreSQL 中插入唯一值

sql - Postgres INTERVAL 使用表中的值

sequelize.js - 使用外键时,获取 "User.DepartmentDepartmentId"而不是 "User.DepartmentId"

node.js - 使用 sequelize 在 postgres 中存储字符串数组?

javascript - 为什么源代码中看不到 DOM 结构?

postgresql - oracle plsql WITH语句结合INSERT

javascript - Sequelize 关联到同一个表