如果我要将表的小时间字段转换为日期时间字段,那么可能的副作用是什么(仅针对数据库)?存储过程中是否会出现平等问题?加入会导致错误或不同的结果吗?
在我看来,将小时间转换为日期时间似乎是无害的,但我想了解可能的陷阱。
发布于 2017-04-19 22:02:11
将Smalldatetime转换为datetime不会引起任何问题,只会占用该列的双倍空间。看看服务器数据类型转换图。
Smalldatetime使用4个字节的空间,而datetime使用8个字节。两者都是固定长度的。
网上书籍:
当转换为datetime时,小日期时间值被复制到datetime值。小数秒设置为0。下面的代码显示了将小日期时间值转换为日期时间值的结果。
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @datetime datetime = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @datetime AS 'datetime';
--Result
--@smalldatetime datetime
------------------------- -----------------------
--1955-12-13 12:43:00 1955-12-13 12:43:00.000
--
--(1 row(s) affected)][2] 我知道在一些博客和文章中提到隐式转换会导致扫描而不是搜索,或者根本不会使用索引。这在很多情况下都是正确的,但并不总是如此。在这种情况下,你会得到一个寻求。见乔纳森·凯哈伊亚斯( Jonathan )的这篇文章。
https://dba.stackexchange.com/questions/171455
复制相似问题