2016-04-13 2 views
0

У меня есть поле Last Last Modified At со значением типа '2016/04/12 20:24:18'. Это не ISO-дата, а нормальное значение String, хранящееся через java-процесс в MongoDb. Я пытаюсь написать сценарий оболочки, чтобы рассчитать разницу между '2016/04/12 20:24:18' и сказать '2016/04/12 16:24:18'. Разница может быть либо в днях, либо в часах, либо в минутах или в секундах. Я пробовал пару вещей, включая конвертацию в даты ISO, но это не работает. Есть ли простой способ узнать, как Oracle.Рассчитать разницу между 2 раз в MongoDB

Любая помощь будет оценена по достоинству?

Спасибо, Ram

+0

Можете ли вы использовать ссылку [edit] в своем вопросе для включения попыток конвертации в даты ISO? – chridam

ответ

0

Я точно не знаю, как вы планируете запустить сценарий оболочки, но это возможно в Монго оболочки для разбора даты (с помощью Javascript) и вычислить время между двумя датами, как вы спросил. Предположим, у нас есть документ в базе данных 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}); 
}); 

это приводит:

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

где dateDiff является миллисекунды и 14400000 milliseconds = 4 hours.

Если вы предоставляете больше информации о том, как вы планируете совершать этот звонок, и откуда приходит вторая дата, я был бы рад расширить этот ответ.

Смежные вопросы