【发布时间】:2014-07-21 19:11:54
【问题描述】:
我有一个表 dbo.files 有 9 列,其中包括 file_size 和 created_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)
结果是“0.173525810”。有没有办法移动小数点以显示正确的值?
谢谢
【问题讨论】:
-
我想你误解了那个函数的作用......
-
可能是这样。有没有办法让 file_size 的总和显示为 MB?
-
你为什么使用数据长度???移动小数位是非常基本的数学运算。向右移动除以 10,向左移动乘以 10。
-
file_size 的数据类型是数字数据类型还是字符串?
-
完全摆脱函数调用。剩下的应该可以工作。
标签: sql-server sql-server-2008 datalength