1

我有一个dbo.files包含 9 列的表,其中包括file_sizeandcreated_timefilepath

样本值:

  • 文件大小 = 528300
  • created_time = 2012-06-28 09:31:17.610

我有以下查询,我试图显示这些文件“今天”写入文件系统的总 MB 数。

select 
    sum(datalength(f.file_size)) / 1048576.0 AS 'Storage Used Today"
from 
    dbo.files AS f
where 
    f.created_time >= CAST(getdate() as DATE)
    and f.created_time < CAST(DATEADD(day, 1, getdate()) as DATE)

结果是“0.173525810”。有没有办法移动那个小数以显示正确的值?

谢谢

4

1 回答 1

2

SUM(DATALENGTH(x))告诉您数字表示的字节大小。

这不是你需要的。

例如,如果数据类型是整数(4 个字节),并且列中有三行没有空值,则无论实际数字内容如何,​​它都会计算为 12。

只需删除函数调用。

sum(f.file_size) / (1024.0 * 1024)

会正常工作

于 2014-07-21T19:32:00.680 回答