Money数据类型在SQL Server中存储日期值?

pes*_*esi 3 sql t-sql sql-server

我正在研究我刚刚继承的数据库的一些性能问题.我可以看到,由于查询将货币数据类型转换为日期,因此存在大量隐式转换.看起来几乎所有的日期字段都有货币数据类型.

有人可以告诉我一个好的和有效的理由,为什么有人会使用货币数据类型的日期?

谢谢!

Mar*_*ith 6

这种做法绝对没有充分和有效的理由.

两个datetimemoney是8个字节.datetime有4个字节保留date,4个为time.

money范围从.-922,337,203,685,477.5808922,337,203,685,477.5807.当从整数部分进行铸造时,moneydatetime其作为天数,1900-01-01将小数部分视为当天的百分比.

这意味着你在失去精密time部件(每个0.0001增量= 8.640秒),并获得在无用多余的规模date,通过能够永远保存数字过于庞大,以部分cast成功地datetime(具有结合到最大9999 AD)

如果可能,修复架构.