Skip to content

Converts a byte count into a human-readable string with the appropriate unit (B, KB, MB, GB, TB, PB, EB). Uses 1024-based (binary) calculations. Returns NULL for negative or NULL inputs.

func.format_bytes(<bytes>)
func.format_bytes(123456789)
┌──────────────────────────────────┐
│ func.format_bytes(123456789) │
├──────────────────────────────────┤
117.74 MB
└──────────────────────────────────┘
FORMAT_BYTES(<bytes>)
ArgumentsDescription
<bytes>A non-negative BIGINT integer representing the number of bytes to format.

VARCHAR

Basic formatting:

SELECT format_bytes(0);
┌──────────────────┐
│ format_bytes(0) │
├──────────────────┤
0 B │
└──────────────────┘
SELECT format_bytes(123);
┌────────────────────┐
│ format_bytes(123) │
├────────────────────┤
123 B │
└────────────────────┘
SELECT format_bytes(1024);
┌─────────────────────┐
│ format_bytes(1024) │
├─────────────────────┤
1.00 KB │
└─────────────────────┘
SELECT format_bytes(4096);
┌─────────────────────┐
│ format_bytes(4096) │
├─────────────────────┤
4.00 KB │
└─────────────────────┘
SELECT format_bytes(123456789);
┌───��──────────────────────┐
│ format_bytes(123456789) │
├──────────────────────────┤
117.74 MB │
└──────────────────────────┘
SELECT format_bytes(10737418240);
┌────────────────────────────┐
│ format_bytes(10737418240) │
├────────────────────────────┤
10.00 GB │
└────────────────────────────┘

Edge cases:

SELECT format_bytes(-1);
┌───────────────────┐
│ format_bytes(-1) │
├───────────────────┤
NULL
└───────────────────┘
SELECT format_bytes(NULL);
┌─────────────────────┐
│ format_bytes(NULL) │
├─────────────────────┤
NULL
└─────────────────────┘

Precision and rounding:

SELECT format_bytes(1536);
┌─────────────────────┐
│ format_bytes(1536) │
├─────────────────────┤
1.50 KB │
└─────────────────────┘
SELECT format_bytes(1025);
┌─────────────────────┐
│ format_bytes(1025) │
├─────────────────────┤
1.00 KB │
└─────────────────────┘
SELECT format_bytes(1048576 + 52429);
┌──────────────────────────────────┐
│ format_bytes(1048576 + 52429) │
├──────────────────────────────────┤
1.05 MB │
└──────────────────────────────────┘

Full unit range:

SELECT format_bytes(512);
┌────────────────────┐
│ format_bytes(512) │
├────────────────────┤
512 B │
└────────────────────┘
SELECT format_bytes(2048);
┌─────────────────────┐
│ format_bytes(2048) │
├─────────────────────┤
2.00 KB │
└─────────────────────┘
SELECT format_bytes(1572864);
┌──────────────────────────┐
│ format_bytes(1572864) │
├──────────────────────────┤
1.50 MB │
└──────────────────────────┘
SELECT format_bytes(2147483648);
┌────────────────────────────┐
│ format_bytes(2147483648) │
├────────────────────────────┤
2.00 GB │
└────────────────────────────┘
SELECT format_bytes(1099511627776);
┌──────────────────────────────────┐
│ format_bytes(1099511627776) │
├──────────────────────────────────┤
1.00 TB │
└──────────────────────────────────┘
SELECT format_bytes(1125899906842624);
┌─────────────────────────────────────┐
│ format_bytes(1125899906842624) │
├─────────────────────────────────────┤
1.00 PB │
└─────────────────────────────────────┘
SELECT format_bytes(1152921504606846976);
┌────────────────────────────────────────┐
│ format_bytes(1152921504606846976) │
├────────────────────────────────────────┤
1.00 EB │
└────────────────────────────────────────┘

Practical table monitoring:

CREATE TABLE storage_info (
table_name VARCHAR(64),
size_bytes BIGINT
);
INSERT INTO storage_info VALUES
('user_profiles', 1073741824),
('transaction_logs', 5368709120),
('product_catalog', 524288000),
('analytics_data', 2199023255552);
SELECT
table_name,
size_bytes,
format_bytes(size_bytes) AS formatted_size
FROM storage_info
ORDER BY size_bytes DESC;
┌──────────────────┬───────────────┬────────────────┐
│ table_name │ size_bytes │ formatted_size │
├──────────────────┼───────────────┼────────────────┤
│ analytics_data │ 21990232555522.00 TB │
│ transaction_logs │ 53687091205.00 GB │
│ user_profiles │ 10737418241.00 GB │
│ product_catalog │ 524288000500.00 MB │
└──────────────────┴───────────────┴────────────────┘