Использование констант current и now
Листинг 3.28. Использование констант current и now
booktown=# CREATE TABLE tasklog
booktown=# (taskname char(15),
booktown=# timebegun timestamp,
booktown=# timeflnished timestamp);
CREATE
booktown=# INSERT INTO tasklog VALUES
booktown=# ('delivery', 'now', 'current'):
INSERT 169936 1
booktown=# INSERT INTO tasklog
VALUES booktown=# ('remodeling', 'now', 'current');
INSERT 169937 1
booktown=# SELECT taskname, tlmefnished - timebegun
booktown-# AS timespent FROM tasklog;
taskname | timespent
delivery | 00:15-.32
remodeling [ 00:04:42
(2 rows)
Итак, константа now обычно используется при сохранении в таблице фиксированного момента времени, который не изменяется при последующих ссылках. Как видно из листинга 3.29, плохое понимание различий между константами now и current приводит к потенциальным ошибкам программирования SQL. В листинге приведены две команды INSERT; в первой команде используется now, а во второй — current. Сравнение результатов показывает, что в первой строке при каждом запросе время обновляется, а во второй строке оно всегда остается одинаковым.