如果smalldatetime是可以支持到秒的,那么是不是我哪里设错了,怎么改才能精确到秒?

解决方案 »

  1.   

    只能到分钟
    SQL Server 将 smalldatetime 的值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后的分钟数。日期范围从1900 年 1 月 1 日到 2079 年 6 月 6 日,精确到分钟。
    用datetime吧
    datetime 精确度为百分之三秒
      

  2.   

    datetime從 1753 年 1 月 1 日到 9999年 12 月 31 日的日期時間資料,精確度到 300 分之 1 秒,即 3.33 毫秒。值會捨入成 .000, .003,即 .007 毫秒的遞增量,如下表所示。範例 捨入之後 
    01/01/98 23:59:59.999 1998-01-02 00:00:00.000 
    01/01/98 23:59:59.995,
    01/01/98 23:59:59.996, 
    01/01/98 23:59:59.997, or
    01/01/98 23:59:59.998 1998-01-01 23:59:59.997 
    01/01/98 23:59:59.992, 
    01/01/98 23:59:59.993, 
    01/01/98 23:59:59.994 1998-01-01 23:59:59.993 
    01/01/98 23:59:59.990 or
    01/01/98 23:59:59.991 1998-01-01 23:59:59.990 
    SQL Server 會拒絕介於 1753 和 9999 之間且無法辨識為日期的所有值。smalldatetime日期及時間資料從西元 1900 年 1 月 1 日到西元 2079 年 6 月 6 日,精準度為分。29.998 秒或更小的 smalldatetime 值將捨棄尾數成為最接近的分;29.999 秒或更大的值將補足尾數成為最接近的分。--returns time as 12:35
    SELECT CAST('2000-05-08 12:35:29.998' AS smalldatetime)
    GO
    --returns time as 12:36
    SELECT CAST('2000-05-08 12:35:29.999' AS smalldatetime)
    GO備註
    具有 datetime 資料型別的值,在 Microsoft® SQL Server™ 內部是以兩個 4 位元組整數的形態儲存。前 4 個位元組儲存 base date (1900 年 1 月 1 日) 之前或之後的日數。基礎日期是系統參考日期。早於 1753 年 1 月 1 日的 datetime 值將不被允許。其它 4 個位元組儲存一天內的時間,從午夜開始算起,以毫秒表示。smalldatetime 資料型別所儲存的日期與時間,其精確度不如 datetime。SQL Server 將 smalldatetime 值存成兩個 2 位元組整數。前面 2 個位元組儲存了從 1900 年 1 月 1 日算起的日數。其它 2 個位元組儲存了自午夜算起的分鐘數。日期範圍從 1900 年 1 月 1 日到 2079 年 6 月 6 日,精確度到分鐘。
      

  3.   

    直接改为datetime类型就可以了