cast(convert(varchar(10), getdate(), 121) as datetime)

解决方案 »

  1.   

    如果要用datetime类型来达到这种效果恐怕是不行了,因为sql会报错!
    改用其它类型存储吧
      

  2.   

    Microsoft SQL Server 用两个 4 字节的整数内部存储 datetime 数据类型的值。第一个 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 日,精确到分钟。
    ------------------------------------
    所以,只想保存某以部分时,可以将其它部分清0,或者改用varchar()存储只记录时间:
    select cast(right(convert(varchar(23), getdate(), 121), 12) as datetime)
    显示为1900-01-01 12:20:52.533
      

  3.   

    SQL Server对于日期型字段是格式强制要求的,对于只保存时间这种需求只能用字符型来处理。