SQL Server 2014 以秒为单位插入/更新 smalldatetime 值

标签 sql sql-server date smalldatetime

我在 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/

相关文章:

c++ - C++ 的持久性解决方案(带有 SQL 数据库)?

sql-server - 如何在 SQL Server 2008 中设置字符串自定义格式

regex - 这个 (mm-dd-yyyy) 正则表达式有什么问题?

javascript - 在 jquery 中更改日期时,Datepicker 采用默认日期

mysql - 如何根据列分配记录

sql - 创建具有左侧/右侧的用户定义运算符

mysql - 返回计数为 0 的行

c# - 将 id 标识值存储在变量中

c# - 在 C# 中的 SQL 查询中将字符串数组作为参数传递

oracle - 记录最大日期