SQL Server:数据长度转换

时间:2014-07-21 19:11:55

标签: sql-server sql-server-2008 datalength

我的表格dbo.files有9列,包括file_sizecreated_time以及filepath

示例值:

  • file_size = 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)

结果是&#39; 0.173525810&#39;。有没有办法将小数点移动以显示正确的值?

由于

1 个答案:

答案 0 :(得分:2)

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

这不是你需要的。

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

只需删除函数调用。

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

工作正常