PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как Extract() работи в PostgreSQL

В PostgreSQL, extract() функцията извлича подполета като година, месец, час или минута, част от стойност за дата/час.

Това е еквивалентно на date_part() функция, макар и с малко по-различен синтаксис.

Синтаксис

Синтаксисът е така:

EXTRACT(field FROM source)

Къде:

  • field is е идентификатор или низ, който избира кое поле да се извлече от изходната стойност.
  • source е времево клеймо или винтервала .

Пример – Timestamp

Ето основен пример, за да демонстрирате как да извлечете поле от времево клеймо стойност.

SELECT extract(hour FROM timestamp '2022-10-30 10:11:35');

Резултат:

10

Този пример извлича полето за час от timestamp стойност.

Както споменахме, първият аргумент може да бъде идентификатор или низ. Това е една от разликите между extract() и date_part() . Когато използвате date_part() , трябва да предоставите низ за този аргумент.

Ето отново същия пример, освен като низ.

SELECT extract('hour' FROM timestamp '2022-10-30 10:11:35');

Резултат:

10

Ето пример със същото клеймо за време, но този път извличам полето за годината.

SELECT extract(year FROM timestamp '2022-10-30 10:11:35');

Резултат:

2022

Пример – Интервал

В този пример извличам част от дата от интервал стойност.

SELECT extract(hour FROM interval '7 hours 45 minutes');

Резултат:

7

В следващия пример функцията връща правилно броя на часовете, въпреки че предоставям само броя на минутите.

SELECT extract(hour FROM interval '120 minutes');

Резултат:

2

Въпреки това, не разчитайте на тази техника. Може да откриете, че не винаги получавате резултата, който очаквате.

Например:

SELECT extract(hour FROM interval '100 minutes');

Резултат:

1

И още едно:

SELECT extract(minute FROM interval '2 hours');

Резултат:

0

Имена на полета

Първият аргумент може да бъде някой от следните:

  • century
  • day
  • decade
  • dow
  • doy
  • epoch
  • hour
  • isodow
  • isoyear
  • microseconds
  • millennium
  • milliseconds
  • minute
  • month
  • quarter
  • second
  • timezone
  • timezone_hour
  • timezone_minute
  • week
  • year

Те са същите като валидните стойности за date_part() функция.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инсталирането на pip е неуспешно с /usr/bin/clang:Няма такъв файл или директория

  2. PostgreSQL:Пуснете PostgreSQL база данни през командния ред

  3. Как да инсталирате PostgreSQL 12 на Ubuntu 20.04 DigitalOcean

  4. Може ли PostgreSQL да индексира колони от масиви?

  5. Какво е името на ограничението по подразбиране в PostgreSQL?