PICO_SIZE_PRETTY¶
Скалярная функция PICO_SIZE_PRETTY преобразует размер в байтах в
строку с единицей измерения: bytes, kB, MB, GB, TB или PB.
Каждая следующая единица в 1024 раза больше предыдущей. Функция
работает так же, как функция pg_size_pretty в PostgreSQL, и дает те
же результаты.
Функция является строгой.
Синтаксис¶
Правила¶
- Размер меньше 10240 байт выводится в байтах как есть, в том числе
дробный размер типа
DECIMAL, например1.5 bytes. - У большего размера функция сначала отбрасывает дробную часть. Затем она выбирает наибольшую единицу измерения, в которой число не меньше 10, и округляет число до целого. Половина округляется от нуля. Число в результате не больше 10239, кроме размеров от 10240 PB.
- Отрицательный размер выводится со знаком минус.
- Результат имеет тип
TEXT.
Примеры¶
SELECT
pico_size_pretty(10239),
pico_size_pretty(10240),
pico_size_pretty(10485248);
Результат
+-------------+-------+-------+
| col_1 | col_2 | col_3 |
+=============================+
| 10239 bytes | 10 kB | 10 MB |
+-------------+-------+-------+
Функция удобна для вывода суммы размеров. Результат SUM для
целых чисел имеет тип DECIMAL, который функция тоже принимает:
SELECT pico_size_pretty(sum(size)) FROM files;