【问题标题】:Get size for Bytea column in postgreSQL在 postgreSQL 中获取 Bytea 列的大小
【发布时间】:2020-02-13 05:52:18
【问题描述】:

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

在 SQL Server 中,我可以使用以下查询:

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

您能否建议我,我们如何在 postgreSQL 中编写相同的上述 sql 查询。

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    您可以使用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,你可以使用:

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

    【讨论】:

    • 你好,你把length()的结果转换成Mib吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2022-01-24
    相关资源
    最近更新 更多