我在 SQL Server 中遇到一个关于 smalldatetime 数据类型的奇怪问题。
我有一个非常基本的表
create table datetest (
value smalldatetime not null
)
当我运行以下命令时
insert into datetest
values ('2016-12-29 21:30:00');
我看到值是 2016-12-29 21:30:00
然后当我运行以下命令时
update datetest
set value = '2016-12-29 21:31:30'
我看到值是 2016-12-29 21:31:00
它不包括秒数。这是为什么?
最佳答案
发生这种情况是因为 smalldatetime
的精度为 1 分钟。它通过四舍五入丢弃日期时间值中的任何秒数。例如:
'2014-10-10 12:13:29'
四舍五入为 '2014-10-10 12:13:00'
和 '2014-10 -10 12:13:30'
四舍五入为 '2014-10-10 12:14:00'
关于SQL Server 2014 以秒为单位插入/更新 smalldatetime 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40738945/