Sql

Current timestamp postgresql: Get Current Date &Time with TZ

Разница между CURRENT_TIMESTAMP и clock_timestamp() и как их использовать во многих реляционных базах данных, включая PostgreSQL, SQL Server, Firebird, IBM DB2 и MySQL, и это лишь некоторые из них. который фиксирует начало транзакции. Важно помнить, что для каждой транзакции существует только одна запись, поэтому, если у вас есть длительная транзакция, вы не увидите, как он меняется по ходу дела.

clock_timestamp() — это функция PostgreSQL, которая всегда возвращает текущую метку времени. Я не думаю, что я один использую его для простого бенчмаркинга и других вещей. где, например, мне нужно записать тайминги каждой части функции внутри функции, используя простые операторы отладочной печати RAISE NOTICE.

Есть еще один классный способ, который мне нравится использовать, и это для пакета записей, каждый из которых требует дорогостоящего вызова функции, сравнительный анализ того, сколько времени требуется для обработки каждой записи. Одна из вещей, над которыми я работаю, — это повышение скорости работы tiger_geocoder, входящего в состав PostGIS 2.

0. Мне показалось, что первым корнем атаки будет функция normalize_address. который, как я заметил, занимал от 10% до 50% моего времени в процессе геокодирования. Это уйма времени, если вы пытаетесь выполнить пакетное геокодирование тонны записей. Дело в том функция очень специфична для того, насколько плохо сформирован адрес, поэтому целая партия может быть задержана одним плохим яблоком, и поскольку партия не возвращается, пока все не будут обработаны, это делает все это, кажется, занять некоторое время.

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

 WITH ctbenchmark
КАК
(ВЫБИРАТЬ  *,
        the_time - COALESCE(lag(the_time) OVER(ORDER BY the_time), CURRENT_TIMESTAMP) As process_time,
            the_time — CURRENT_TIMESTAMP Как diff_from_start
ОТ (ВЫБЕРИТЕ адрес_1, город, штат, почтовый индекс,
    pprint_addy(normalize_address(coalesce(address_1,'') || ', ' || объединение(город || ' ','') || состояние || ' ' || zip)) Как pp_addr,
        clock_timestamp() как the_time
       FROM testgeocode LIMIT 1000) Как foo )
ВЫБИРАТЬ *
ОТ ctbenchmark
       ГДЕ время_процесса >
'00:00:00. 016'::интервал;

Что вернуло что-то вроде этого:

        адрес_1 | город | состояние | почтовый индекс | pp_addr | время | процесс_время | diff_from_start
------------------+------------+--------+------- +-- --------------------------------------------------------+-------- ------+----
 48 ГЛАВНАЯ СТ.. | С.. | Массачусетс | 021.. | 48 ГЛАВНАЯ .. | 2011-05-10 03:24:43.078-04 | 00:00:00.032 | 00:00:00.032
 15 ... | | Массачусетс | 018... | 15 ЗЕЛЕНЫЙ... | 2011-05-10 03:24:50.796-04 | 00:00:00.031 | 00:00:07.75 

Функции даты и времени PostgreSQL

На этой странице перечислены функции даты и времени, которые можно использовать для управления временными значениями в PostgreSQL.

  1. возраст

    Функция PostgreSQL age() вычисляет возраст в соответствии с указанным днем ​​рождения и возвращает возраст в формате x лет x месяцев x дней .

  2. clock_timestamp

    PostgreSQL функция clock_timestamp() возвращает дату и время выполнения этой функции. Два выполнения clock_timestamp() могут возвращать разные значения.

  3. текущая дата

    Функция PostgreSQL current_date возвращает текущую системную дату в формате ГГГГ-ММ-ДД .

  4. Текущее время

    Функция PostgreSQL current_time возвращает системное время с информацией о часовом поясе в формате ЧЧ:ММ:СС.сссссс{+|-}ZZ .

  5. текущая_временная метка

    Функция PostgreSQL current_timestamp() возвращает текущую дату и время (начало текущей транзакции).

  6. date_bin

    Функция PostgreSQL date_bin() усекает указанную отметку времени до начала ближайшего указанного интервала.

  7. дата_часть

    PostgreSQL date_part() 9Функция 0039 извлекает указанное поле из указанной метки времени или интервала и возвращает результат.

  8. date_trunc

    Функция PostgreSQL date_trunc() усекает указанную отметку времени или значение интервала до указанной части и возвращает результат.

  9. извлекать

    Функция Extract() PostgreSQL извлекает указанное поле из указанной метки времени или интервала времени и возвращает его.

  10. конечный

    Функция PostgreSQL isfinite() определяет, является ли заданное значение даты, временной метки или интервала конечным.

  11. justify_days

    Функция postgreSQL justify_days() преобразует представление интервалов времени, преобразовывая количество дней за 30 дней в количество месяцев.

  12. justify_hours

    PostgreSQL justify_hours() Функция преобразует представление временных интервалов, переводя часы свыше 24 часов в дни.

  13. justify_interval

    Функция postgreSQL justify_interval() преобразует представление временных интервалов, преобразуя часы свыше 24 часов в дни, а дни свыше 30 дней — в месяцы.

  14. местное время

    Функция PostgreSQL localtime возвращает текущее системное время в формате ЧЧ:ММ:СС.сссссссс .

  15. местная временная метка

    Функция PostgreSQL localtimestamp() возвращает системную дату и время начала транзакции.

  16. make_date

    Функция PostgreSQL

    make_date() создает дату из заданных полей года, месяца и дня.

  17. make_interval

    Функция PostgreSQL make_interval() создает значение интервала из заданных полей года, месяца, дня, часа, минуты и секунды.

  18. make_time

    Функция PostgreSQL make_time() создает время из заданных полей часа, минуты и секунды.

  19. make_timestamp

    Функция PostgreSQL make_timestamp() создает значение метки времени из заданных полей года, месяца, дня, часа, минуты и секунды.

  20. make_timestamptz

    Функция PostgreSQL make_timestamptz() создает значение метки времени из заданных полей года, месяца, дня, часа, минуты, секунды и часового пояса.

  21. сейчас

    Функция PostgreSQL now() возвращает системную дату и время начала текущей транзакции.

  22. pg_sleep

    Функция PostgreSQL pg_sleep() приостанавливает выполнение текущего серверного процесса на указанное количество секунд.

  23. pg_sleep_for

    Функция PostgreSQL pg_sleep_for() получает параметр интервала, который приостанавливает выполнение текущего серверного процесса на указанный интервал.

  24. pg_sleep_until

    Функция PostgreSQL pg_sleep_until() получает значение метки времени и приостанавливает выполнение текущего серверного процесса до указанного момента.

  25. метка_времени_оператора

    Функция PostgreSQL statement_timestamp() возвращает метку времени начала выполнения текущего оператора.

  26. время дня

    PostgreSQL timeofday() 9Функция 0039 возвращает строку, представляющую отметку времени выполнения этой функции.

  27. на сегодняшний день

    Функция PostgreSQL to_date() преобразует указанную строку в значение даты в соответствии с заданным форматом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *