SELECT extract(
'microsecond' from timestamp '1999-11-27 12:34:56.123459'
);
Она выводит не просто значение поля микросекунд, т. е. 123459, а дополнитель-
но преобразует число секунд в микросекунды и добавляет значение поля мик-
росекунд.
date_part
-----------
56123459
(1 строка)
Выполните эту команду, последовательно указывая в качестве первого пара-
метра значения microsecond, millisecond, second, minute, hour, day, week, month,
year, decade, century, millennium. Можно использовать сокращения этих наиме-
нований, которые приведены в предыдущем задании. Обратите внимание, что
в ряде случаев выводится не просто конкретное поле (фрагмент) из временн
о
й
отметки, а некоторый продукт переработки этого поля. Например, если в каче-
стве первого параметра функции extract() в вышеприведенной команде указать
cent (век), то мы получим в ответ не 19 (что и было бы буквальным значением
поля «век»), а 20, поскольку 1999 год принадлежит двадцатому веку.
28. Функция extract() может работать не только с данными типа timestamp, но также
и данными типа interval. Самостоятельно ознакомьтесь с этими возможностями
по документации (см. раздел 9.9 «Операторы и функции даты/времени»).
29.* В тексте главы мы создавали таблицу с помощью команды
CREATE TABLE databases ( is_open_source boolean, dbms_name text );
и заполняли ее данными.
INSERT INTO databases VALUES ( TRUE, 'PostgreSQL' );
INSERT INTO databases VALUES ( FALSE, 'Oracle' );
INSERT INTO databases VALUES ( TRUE, 'MySQL' );
INSERT INTO databases VALUES ( FALSE, 'MS SQL Server' );
Как вы думаете, являются ли все приведенные ниже команды равнозначными
в смысле результатов, получаемых с их помощью?
SELECT * FROM databases WHERE NOT is_open_source;
SELECT * FROM databases WHERE is_open_source <> 'yes';
Достарыңызбен бөлісу: |