在PostgreSQL中获取Bytea列的大小

22

我有一个用于存储文件信息的表格。文件内容存储在列中(在PostgreSQL中,列数据类型为bytea)。现在,我想根据bytea列数据获取文件内容大小。

在SQL Server中,我可以使用以下查询语句获取:

select convert(nvarchar(50),DATALENGTH(FileDataInVarbinary)/ 1048576.0 ) +' MB' as FileSize from Table_FileInfo

你能建议我如何在PostgreSQL中编写与上述SQL查询相同的查询吗。

1个回答

46
你可以使用length()函数来获取字节长度:
select length(bytea_column) as filesize
from file_info;
如果您想对输出进行格式化,可以使用pg_size_pretty()
select pg_size_pretty(length(bytea_column)) as filesize
from file_info;

这将根据文件大小自适应输出“kb”、“mb”。如果你总是希望使用MB,可以使用:

这将根据大小自适应输出“kb”、“mb”。如果您始终希望使用MB,则可以使用:

select concat(length(bytea_column) / 1048576.0, ' MB') as filesize
from file_info;

你好, 你能将 length() 函数的结果转换成 Mib 吗? - Cocorico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接