【问题标题】:date_format with sequelize mysqldate_format with sequelize mysql
【发布时间】:2020-06-01 17:54:01
【问题描述】:

我正在为我的后端使用 sequelize,我想用 YYYY-mm-dd 添加一个 where 条件

在mysql中我们使用date_format(dateCreated, "%d-%m-%Y")

但是如何在 Sequelize 中实现它。我搜索了整个谷歌,但没有任何帮助

我目前的 Sequelize 查询。我想获取dateCreated = '2020-05-31'的数据。

const apartmentOrdersData = await apartments_order.findAll(
        {
            where: { apid: req.body.apid }, group: ['apcid'],
            attributes: ['apcid', [sequelize.fn('sum', sequelize.col('totalCost')), 'total_amount'],],
            include: [apartments_child]
        });

我的模特:

    const { DataTypes, Model } = require('sequelize');
    const sequelize = require('../../../mysql_connection/sequilize');
    const admins = require('./admins');
    const apartments_child = require('./apartments_child');

    class apartments_order extends Model { }

    apartments_order.init({
        // Model attributes are defined here
        apoid: {
            type: DataTypes.INTEGER,
            primaryKey: true
        },
        invoiceNo: {
            type: DataTypes.STRING
        },
        apid: {
            type: DataTypes.INTEGER
        },
        apcid: {
            type: DataTypes.INTEGER
        },
        apcbid: {
            type: DataTypes.INTEGER
        },
        totalCost: {
            type: DataTypes.DECIMAL
        },
        dateCreated: {
            type: DataTypes.DATE
        },
        dateUpdated: {
            type: DataTypes.DATE
        },
        createdBy: {
            type: DataTypes.STRING
        },
        updatedBy: {
            type: DataTypes.STRING
        },
        status: {
            type: DataTypes.STRING
        }
    }, {
        sequelize,
        timestamps: false,
        logging: false,
        tableName: 'apartments_order'
    });

    apartments_order.hasOne(admins, { foreignKey: 'aid', sourceKey: 'createdBy' });
    apartments_order.hasOne(apartments_child, { foreignKey: 'apcid', sourceKey: 'apcid' });

    module.exports = apartments_order;

【问题讨论】:

  • 谁能帮帮我:(

标签: mysql node.js sequelize.js


【解决方案1】:

您可以做的一件事是对列使用 setter 和 getter。

按照示例(在您的字段声明中,您可以操作getter()setter() 中的数据:

dateUpdated: {
    type: Sequelize.STRING,
    defaultValue: '[]',
    get() {
        const d = this.getDataValue('dateUpdated');
        return format(d, 'Y-m-d');

    },
    set(value) {
        return this.setDataValue('dateUpdated', format(value, <your-format-here>)
    },
    type: DataTypes.DATE,
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 2023-03-30
    • 2013-01-10
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多