日期:2014-05-18  浏览次数:21184 次

SQLServer DateTime类型 秒部分总是为0
开发语言 C#,
采用SQL Server 2005 数据库

利用存储过程,在向表中添加数据时,发现 一个smalldatetime 字段的秒部分总是0,试过如下几种办法,情况照旧,不知道什么原因,请教各位。

存储过程:
SQL code

ALTER PROCEDURE procInsertNewRecord
    (
    @Time smalldatetime    
    )
AS
    INSERT INTO DATA (时间)
    VALUES (@Time)
RETURN



代码调用
sqlCommand.Connection = new System.Data.SqlClient.SqlConnection(ConnectionString);
sqlCommand.CommandText = "procInsertNewRecord";
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.Add("@Time", SqlDbType.SmallDateTime).Value = DateTime.Now;
sqlCommand.Connection.Open();
sqlCommand.ExecuteNonQuery();

通过 sqlcmd.exe 执行查询后,显示的结果:
 2012-05-08 15:13:00
 2012-05-08 15:13:00
 2012-05-08 23:14:00
 2012-05-08 23:14:00
 2012-05-08 23:14:00

(38 行受影响)
1>
红色的秒部分,不应该是0的。。。

------解决方案--------------------
把smalldatetime 改为 datetime
------解决方案--------------------
SQL code

smalldatetime 精确度是分钟,你把类型换乘datetime吧


select CAST(GETDATE() as smalldatetime)
/*
2012-05-08 23:44:00
*/
select  GETDATE()
/*
2012-05-08 23:44:05.997
*/

------解决方案--------------------
参考 http://technet.microsoft.com/zh-cn/library/ms182418.aspx
------解决方案--------------------
探讨

参考 http://technet.microsoft.com/zh-cn/library/ms182418.aspx

------解决方案--------------------
探讨

引用:

参考 http://technet.microsoft.com/zh-cn/library/ms182418.aspx


睡个还不睡觉啊