The*_*age 2 sql sql-server date smalldatetime
我在 SQL Server 中的 smalldatetime 数据类型有一个奇怪的问题。
我有一个非常基本的表
create table datetest (
value smalldatetime not null
)
Run Code Online (Sandbox Code Playgroud)
当我运行以下命令时
insert into datetest
values ('2016-12-29 21:30:00');
Run Code Online (Sandbox Code Playgroud)
我看到的值为2016-12-29 21:30:00
然后当我运行以下
update datetest
set value = '2016-12-29 21:31:30'
Run Code Online (Sandbox Code Playgroud)
我看到的值是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'