Блог пользователя msi

Добавить к дате переменный интервал

Изображение msi

Столкнулся с необходимостью добавить к дате интервал, представляющий собой выражение (например, значение некоторого столбца). Проблему можно проиллюстрировать следующим псевдокодом:

SELECT current_timestamp + (2*2 day)

С константами проблем нет:

SELECT current_timestamp + interval '4 day'

Напрягало то, что использование выражений допустимо в аналогичных решениях SQL Server (функция DATEADD, см. пример 7.1.1) и более близких к стандарту MySQL:

Время в минутах между двумя датами

Изображение msi

Вчера адаптировал решение одной задачи под PostgreSQL.
В частности, требовалось вычислить интервал времени в минутах между двумя датами.
В SQL Server это можно сделать, применив встроенную функцию DateDiff:

SELECT datediff (minute, '2011-10-07T23:43:00', '2011-10-08T01:23:00');

В PG я не нашел ничего лучше как представить разность между датами интервалом, извлечь из него число секунд, и, наконец, поделить на 60, чтобы выразить результат в минутах. Итого:

Упражнения на SQL-EX для PostgreSQL

Изображение msi

Реализованы упражнения обучающего этапа (SELECT) для нескольких СУБД, в том числе и для PostgreSQL.
Пока страница находится в режиме тестирования буду рад любым замечаниям.

Консоль к PostgreSQL на SQL-Tutorial.ru

Изображение msi

Интерактивный учебник по SQL оснастился консолью для выполнения запросов к PostgreSQL.
Запросы можно адресовать к учебным базам данных, описание которых можно найти здесь.

DROP DOMAIN ... CASCADE

Изображение msi

Хотел написать комментарий к странице http://postgresql.ru.net/manual/sql-dropdomain.html, но почему-то не пускают.
Вот, собственно, что вызывает недоумение:

CASCADE
Automatically drop objects that depend on the domain (such as table columns).

и
This command conforms to the SQL standard

Собранный материал

Back to top

(С) Виктор Вислобоков, 2008-2010