在ASP.net中插入表getdate()几秒钟

时间:2017-01-15 13:43:44

标签: sql asp.net sql-server

我有一个带有smalldatetime列的日志表。

当我在表格中插入GETDATE()时,数据的插入没有秒数。

示例结果:2017-01-15 15:20:00

我错过了什么?

2 个答案:

答案 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)代替smalldatetimesysdatetime()代替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.DateTime2datetime2可以存储可以存储在.NET DateTime类型中的任何值。

了解详情: