2016-04-13 12 views
0

私は、 '2016/04/12 20:24:18'のような値を持つLast Modified Atというフィールドを持っています。これはISO Dateではなく、MongoDbのJavaプロセスを介して格納された通常のString値です。 '2016/04/12 20:24:18'と '2016/04/12 16:24:18'の違いを計算するシェルスクリプトを作成しようとしています。その差は、日または時間、または分または秒のいずれかになります。私はISOの日付に変換することを含むいくつかのことを試みたが、それはうまくいかない。 Oracleのような簡単な方法がありますか?MongoDBの2倍の差を計算してください

助けていただけたら幸いです。

おかげで、 ラム

+0

あなたの質問に[編集]リンクを使用して、ISO日付に変換しようとする試みを含めることができますか? – chridam

答えて

0

私はあなたがシェルスクリプトを実行する予定の方法を正確にわからないんだけど、それは(Javascriptを使用して)日付を解析し、あなたのように2つの日付の間の時間を計算するためのmongoシェルで可能です尋ねた次のように我々はthingsデータベース内の文書を持っていると仮定します

{ 
    "_id" : ObjectId("570f1e528163383227ace761"), 
    "lastModifiedAt" : "2016/04/12 20:24:18" 
} 

私たちは、ドキュメントおよびハードコードされた日付のlastModifiedDate間の差を取得するには、次のスクリプトを実行できるよう2016/04/12 16:24:18など:

db.things.find({}).forEach(function(thing) { 
    var date1 = new Date(thing.lastModifiedAt); 
    var date2 = new Date('2016/04/12 16:24:18'); 
    var dateDiff = date1.getTime() - date2.getTime(); 
    printjson({_id:thing._id,lastModifiedAt:thing.lastModifiedAt,dateDiff:dateDiff}); 
}); 

この結果:dateDiffはミリ秒と14400000 milliseconds = 4 hoursある

{ 
    "_id" : ObjectId("570f1e528163383227ace761"), 
    "lastModifiedAt" : "2016/04/12 20:24:18", 
    "dateDiff" : 14400000 
} 

この電話をかける方法の詳細と、2番目の日付が来る場所について詳しくお知りになりたい場合は、この回答を拡大してください。

関連する問題