Был у меня такой скрипт для sqlite:
Date=`/usr/bin/sqlite3 /var/somedb/some.db "select datetime('now')"`
Date_db_dump=`/usr/bin/sqlite3 /var/somedb/some.db "select datetime(ts, 'unixepoch') from some_table order by ts DESC limit 1"`
Date_dif=`/usr/bin/sqlite3 /var/somedb/some.db "SELECT strftime('%s','$Date') - strftime('%s','$Date_db_dump') "`
`/usr/bin/sqlite3 /var/somedb/some.db "update some_table set ts = ts + $Date_dif"`
я вот не могу что-то сразу найти для MySQL аналогичные команды. А с postgre я вообще пару дней как знаком и там будет ещё хуже. Если кто в курсе - подскажите пжлст. как сделать.
Что по сути надо делать опишу на всякий случай если не ясно из скрипта:
Date - это текущее время
Date_db_dump - это время последней записи из таблицы в которой я хочу пересчитать время (для всех записей таблицы т.е. для всего столбца 'ts')
Date_dif - это разница во времени между Date и Date_db_dump (в формате unixtime)
эта строка:
`/usr/bin/sqlite3 /var/somedb/some.db "update some_table set ts = ts + $Date_dif"`
изменяла значение каждой строки столбца ts. В результате чего мы получаем данные с временной меткой такой, будто мы их получили только что.
Это нужно для тестирования, что бы когда мы делаем запрос в клиентской программе - старые (заранее набитые) данные выводились так, будто они свежие.