首页 > 解决方案 > 在保留时间的 SQL 存储过程中将 datetime 转换为 smalldatetime?

问题描述

我有一个存储过程,它从数据库中获取数据,该数据库使用 datetime 类型的列(其中有一个有效的时间值),它更新了另一个恰好使用 smalldatetime 类型的数据库中的表。当尝试从 datetime 类型转换为 smalldatetime 类型时,我丢失了日期的时间部分。出于某种奇怪的原因,这个日期在我身上被四舍五入了。是否有某种特殊的从 datetime 到 smalldatetime 的转换语句可以保留该日期值的时间部分?

标签: sqldatetimesmalldatetime

解决方案


显然,在挖掘了更多之后,我找到了问题的答案。smalldatetime 数据类型对秒进行四舍五入。如果是 :29 及以下,则转到前一分钟。如果是 :30 及以上,则进入下一分钟。我以前不知道这一点。真正愚蠢的是,您仍然可以在数据库中看到秒值,即使它始终是 :00。


推荐阅读