Я думал, что это будет просто, но у меня есть проблема.Получение секунд после последней записи
SELECT DATEDIFF (s,getdate(), max(TimeCreated)) as difference
FROM Ens.MessageHeader
Мое предположение состояло в том, что это будет показывать разницу между текущим временем и меткой времени самой последней записи. Если я его выполню, я получаю что-то похожее на 15057
, которое может быть правильным. Однако в следующий раз, когда я его выполнил, он будет ниже. Никаких новых записей не было. Прямо сейчас он находится в 15024
. Все еще нет новых записей. Самая недавняя временная метка в настоящее время 2016-05-13 08:51:16
Идея в том, что я могу посмотреть этот счетчик, и когда он сбрасывается до нуля, я знаю, что есть новое сообщение.
Что мне не хватает?
Update Я добавил некоторые дополнительные данные для запроса, чтобы помочь увидеть, что происходит:
SELECT getDate() as now, max(TimeCreated) as latest, DATEDIFF (s,getdate(), max(TimeCreated)) as difference
FROM Ens.MessageHeader
Вот несколько наборов результатов:
now latest difference
------------------- ------------------- ----------
2016-05-13 09:50:45 2016-05-13 08:51:16 14431
2016-05-13 09:52:29 2016-05-13 08:51:16 14327
2016-05-13 09:52:50 2016-05-13 08:51:16 14306
Когда я выполняю тот же код в своей таблице, у которого есть значение даты, я получаю отрицательное число секунд назад. – GendoIkari