URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3406
[ Назад ]

Исходное сообщение
"SQL запрос, временные метки"

Отправлено jr , 22-Сен-04 18:25 
Что-то не могу сообразить... Есть две временные метки, метка текущего времени TIME_NOW и вытащенная из базы метка TIME_BASE. Как определить разницу между этими метками, например в месяцах? Т.е. если разница, например в 35 дней, то месяц один. Если, например 63 дня, то месяцев два.

Содержание

Сообщения в этом обсуждении
"SQL запрос, временные метки"
Отправлено NewComer , 24-Сен-04 10:48 
>Что-то не могу сообразить... Есть две временные метки, метка текущего времени TIME_NOW
>и вытащенная из базы метка TIME_BASE. Как определить разницу между этими
>метками, например в месяцах? Т.е. если разница, например в 35 дней,
>то месяц один. Если, например 63 дня, то месяцев два.

не знаю как где, а в постгресе есть тип interval и реализованы операции вычисления интервала как разность между двумя временными метками.
Например:

select "timestamp"'2004-09-24'-"timestamp"'2004-07-24' as interval;
interval
----------
62 days
(1 row)

Получить число месяцев из интервала в днях проще простого - надо разделить  полученное значение на 30 :)


"SQL запрос, временные метки"
Отправлено konst , 27-Сен-04 19:48 
>Что-то не могу сообразить... Есть две временные метки, метка текущего времени TIME_NOW
>и вытащенная из базы метка TIME_BASE. Как определить разницу между этими
>метками, например в месяцах? Т.е. если разница, например в 35 дней,
>то месяц один. Если, например 63 дня, то месяцев два.
Никак. А если 29 или 30 дней - это сколько месяцев?! 0 или 1?
кол-во дней в месяце - не константа!
Но можно просто сделать некоторые вычисления (приняв, что любой месяц=30дней): int ($days/30);