Задать вопрос
@ksvdon

Как сделать пересчет времени в MySQL и PostgreSQL?

Был у меня такой скрипт для 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. В результате чего мы получаем данные с временной меткой такой, будто мы их получили только что.

Это нужно для тестирования, что бы когда мы делаем запрос в клиентской программе - старые (заранее набитые) данные выводились так, будто они свежие.
  • Вопрос задан
  • 328 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
update some_table set ts=now()

ровно то, что вы задумали ;)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы