我有一个带有smalldatetime
列的日志表。
当我在表格中插入GETDATE()
时,数据的插入没有秒数。
示例结果:2017-01-15 15:20:00
我错过了什么?
答案 0 :(得分:2)
来自MSDN
<强> SMALLDATETIME 强>
定义与一天中的时间相结合的日期。时间基于 在24小时工作日,秒数始终为零(:00)且没有 小秒数。
如果您需要seconds
,请使用DATETIME
数据类型而不是smalldatetime
DECLARE @smalldatetime SMALLDATETIME = '1955-12-13 12:43:10',
@datetime DATETIME = '1955-12-13 12:43:10'
SELECT @smalldatetime as [SmallDateTime],
@datetime as [DateTime]
结果:
+---------------------+-------------------------+
| SmallDateTime | DateTime |
+---------------------+-------------------------+
| 1955-12-13 12:43:00 | 1955-12-13 12:43:10.000 |
+---------------------+-------------------------+
答案 1 :(得分:0)
对于Sql Server 2008及更高版本:
使用datetime2(p)
代替smalldatetime
和sysdatetime()
代替getdate()
。
datetime
是8个字节; 1753-01-01T00:00:00.000 to 9999-12-31T23:59:59.997
(时间四舍五入到.000,.003,.007)
datetime2(2)
是6个字节; 0001-01-01T00:00:00.00 to 9999-12-31T23:59:59.99
datetime2(4)
是7个字节; 0001-01-01T00:00:00.0000 to 9999-12-31T23:59:59.9999
datetime2(7)
是8个字节; 0001-01-01T00:00:00.0000000 to 9999-12-31T23:59:59.9999999
注意:添加.NET DateTime
作为参数时,请使用System.Data.SqlDbType.DateTime2
。 datetime2
可以存储可以存储在.NET DateTime类型中的任何值。
了解详情: