pes*_*esi 3 sql t-sql sql-server
我正在研究我刚刚继承的数据库的一些性能问题.我可以看到,由于查询将货币数据类型转换为日期,因此存在大量隐式转换.看起来几乎所有的日期字段都有货币数据类型.
有人可以告诉我一个好的和有效的理由,为什么有人会使用货币数据类型的日期?
谢谢!
这种做法绝对没有充分和有效的理由.
两个datetime和money是8个字节.datetime有4个字节保留date,4个为time.
money范围从.-922,337,203,685,477.5808到922,337,203,685,477.5807.当从整数部分进行铸造时,money将datetime其作为天数,1900-01-01将小数部分视为当天的百分比.
这意味着你在失去精密time部件(每个0.0001增量= 8.640秒),并获得在无用多余的规模date,通过能够永远保存数字过于庞大,以部分cast成功地datetime(具有结合到最大9999 AD)
如果可能,修复架构.