2017-01-09 9 views
3

=時間と日付を解釈しその時間= 2の日付として:sequelizeは、私は日付フィールドに基づいて、私のデータベースのレコードを検索するためにsequelizeを使用しようとしている2

SELECT `id`, `user_id`, `date`, `total_visits`, `created_at`, `updated_at` FROM `table1` AS `table1` WHERE `table1`.`user_id` = 123 AND `table1`.`date` = '2017-01-09 02:00:00' LIMIT 1; 

そして、新しいレコードを更新する代わりに、毎回新しいレコードを作成します。それが挿入すると 、日付がこの値で挿入されます。

2017-01-09 00:00:00 

これは私のコードです:

where = { user_id: user_id, 
        date: date_from2 
       }; 

     values = { 
        user_id: user_id, 
        date: date_from2, 
        total_visits: total_visits 

       }; 

     Model.findOne({where: where}).then(function (record) { 
      if (!record) { 
       // Item not found, create a new one 
       Model.create(values) 
        .then(function() { 
         console.log('created!'); 
        }).error(function (err) { 
         console.log('error on create'); 
        }); 
      } else { 
       // Found an item, update it 
       Model.update(values, {where: where}) 
        .then(function() { 
         console.log('updated!'); 
        }) 
        .catch(function (err) { 
         console.log('error on update'); 
        }); 
      } 
     }); 
+0

タイムゾーンはUTC + 0200ですか? – RobG

+0

hm、はい。どうすればこの問題を解決できますか? @RobG –

+0

@RobG UTCは-02 –

答えて

0

クエリあなたが取得しようとしている場合だけで、ユーザーのuser_idなくdateを使用して特定のユーザー:

Model.findOne({where: {user_id: user_id}}) 

問題は、あなたがベックに渡しているものを違った後、dateを保存するということです。これを使用すると、既存のユーザーを見つけることが決してできず、新しいユーザーを作成し続けました。 UTCタイムゾーンを使用しても何も問題はありません。これを他のタイムゾーンに変換できるはずです。

+0

の日付が重要です。私は異なる値を持っている同じユーザーのために、唯一のdiferenceは、日付です –

関連する問題