2016-04-12 5 views
5

はのは私が書くことができますuserテーブルSEQUELIZE:EXTRACT MySQLの機能を使用する方法

のレコードからYEAR_MONTHを抽出しようとしているとしましょう:

SELECT EXTRACT(YEAR_MONTH FROM u.created_on) 
FROM user u; 

私が書く方法を理解するのに苦労していますより複雑なMySQLメソッドを含む続行クエリ。パラメータを1つだけ取るシンプルなMySQLの方法のために

sequelize.fn('avg', sequelize.col('User.age')), 'avg_age']

は、私はのようなものを使用することができます知っています。

これは私が得ることができる最も近いされています:

次のSQLになり
[sequelize.fn('extract', ['YEAR', 'FROM'], 
sequelize.col('User.created_on')), 'created_year_month'] 

:私はのように途方に暮れています

SELECT EXTRACT(YEAR_MONTH FROM u.created_on) 
FROM user u; 

とは対照的に、

extract('YEAR_MONTH', 'FROM', `User`.`created_on`) AS `created_year_month` 

どのように私はこのクエリを適切に構築することができます。

答えて

1

もう少し掘り下げて、sequelize.literal()を使用してSQLクエリに任意の部分を追加するという正しい解決策が実現しました。

ここで解決策を使用することです

sequelize.literal('extract(YEAR_MONTH FROM `User`.`created_on`) AS created_year_month') 
関連する問題