Какие типы данных в PostgreSQL подходят для хранения денег?

Для хранения денежных значений в PostgreSQL обычно используют типы данных с фиксированной точностью, чтобы избежать ошибок округления, характерных для чисел с плавающей точкой. Основные варианты:

Короткий ответ

Что ответить на собеседовании

Для хранения денежных значений в PostgreSQL обычно используют типы данных с фиксированной точностью, чтобы избежать ошибок округления, характерных для чисел с плавающей точкой. Основные варианты:

Подробный разбор

Ответ с пояснениями

Для хранения денежных значений в PostgreSQL обычно используют типы данных с фиксированной точностью, чтобы избежать ошибок округления, характерных для чисел с плавающей точкой. Основные варианты:

  • numeric(precision, scale) — самый универсальный и рекомендуемый тип для денег. Позволяет задать точность и количество знаков после запятой. Например, numeric(15,2) хранит числа с 2 знаками после запятой.
  • money — специализированный тип для денег, который хранит значения с фиксированной точностью и форматируется с учетом локали. Однако у него есть ограничения: зависит от локали, не всегда удобен для сложных вычислений и не всегда переносим между разными СУБД.

Пример использования numeric:

CREATE TABLE transactions (
  id serial PRIMARY KEY,
  amount numeric(15,2) NOT NULL
);

Рекомендуется использовать numeric, так как он более гибкий и точный для финансовых расчетов.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку