FORMAT_BYTES

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.

Analyze Syntax

func.format_bytes(<bytes>)

Analyze Examples

func.format_bytes(123456789)

┌──────────────────────────────────┐
 func.format_bytes(123456789)     
├──────────────────────────────────┤
 117.74 MB                        
└──────────────────────────────────┘

SQL Syntax

FORMAT_BYTES(<bytes>)

Arguments

ArgumentsDescription
<bytes>A non-negative BIGINT integer representing the number of bytes to format.

Return Type

VARCHAR

SQL Examples

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    2199023255552  2.00 TB        
 transaction_logs     5368709120  5.00 GB        
 user_profiles        1073741824  1.00 GB        
 product_catalog       524288000  500.00 MB      
└──────────────────┴───────────────┴────────────────┘