четверг, 6 мая 2010 г.

SQL: Process rows from time to time

Потребовалось обрабатывать данные из SQL таблички не чаще чем раз в 5 минут.
Оказалось очень удобно вынести логику по проверке времени на SQL.

Выбираю я данные вот таким запросом:
SELECT ID,Data FROM MyTasks
WHERE LastProcessed < DATEADD(minute, -5, GETUTCDATE())
ORDER BY LastProcessed
После обработки для нужных строк:
UPDATE MyTasks SET LastProcessed=GETUTCDATE() WHERE ID=@ID"
MSDN: DATEADD, GETUTCDATE

Комментариев нет: