20

デフォルトの形式ではなく、特定の形式で返品日を継続する必要があります。私が知る限り、オプションやその他の方法でそれを設定する方法はありません。取得した日付を毎回手動で更新する以外に、誰でも簡単に解決できましたか? または、何か不足していますか?

4

6 に答える 6

38

Sequelizefnメソッドを使用できます。API リファレンスから、fn関数はクエリで SQL 関数を表すオブジェクトを作成するのに役立ちます。

例えば:

model.findAll({
  attributes: [
      'id',
      [sequelize.fn('date_format', sequelize.col('date_col'), '%Y-%m-%d'), 'date_col_formed']
  ]})
  .then(function(result) {
    console.log(result);
  });

データ値を返します:

[
  {"id": 1, "date_col_formed": "2014-01-01"},
  {"id": 2, "date_col_formed": "2014-01-02"}
   // and so on...
]
于 2014-08-13T04:35:56.207 に答える
18

2019/06/21

少し遅くなりましたが、最新情報を提供します。

Sequelize は強力な ORM ですが (これが最善のソリューションだとは言いません)、ドキュメントが非常に貧弱です。

とにかく、これをモデルで構成したい場合は、他の応答状態としてクエリ全体でこれを繰り返す必要がある場合とは別に、次のようにすることができます。

     const Test = sequelize.define('test', {
                // attributes
                name: {
                    type: DataType.STRING,
                    allowNull: false
                },
                createdAt: {
                    type: DataType.DATE,
     //note here this is the guy that you are looking for                   
                  get() {
                        return moment(this.getDataValue('createdAt')).format('DD/MM/YYYY h:mm:ss');
                    }
                },
                updatedAt: {
                    type: DataType.DATE,
                    get() {
                        return moment(this.getDataValue('updatedAt')).format('DD/MM/YYYY h:mm:ss');
                    }
                }

日付を使用して情報を提供する場合: 最終更新日、最初のログイン、最終ログイン。これが進むべき道です。

関数 get は新しいフォーマットされた要素を返すので、日付に制限されるべきではありません! これによりクエリが遅くなるため、慎重に使用してください。;)

詳細情報(私は知っていますが、ドキュメントはゲームの名前です):http://docs.sequelizejs.com/manual/models-definition.html#getters--amp--setters

于 2019-06-21T05:18:13.577 に答える
10

https://sequelize.org/master/manual/model-basics.html#taking-advantage-of-models-being- _クラス

于 2013-06-24T13:42:21.173 に答える
1

次のようにキャストすることに疑問がある場合VARCHAR

attributes:{include:[[sequelize.cast(sequelize.col('dob'), 'VARCHAR') , 'dob']],exclude:['dob']}
于 2020-12-24T06:33:38.280 に答える