参考:
SyntaxUsing CAST:
CAST(expression AS data_type)
Using CONVERT:CONVERT (data_type[(length)], expression [, style])ArgumentsexpressionIs any valid Microsoft® SQL Server™ expression. For more information, see Expressions. data_typeIs the target system-supplied data type. User-defined data types cannot be used. For more information about available data types, see Data Types. lengthIs an optional parameter of nchar, nvarchar, char, varchar, binary, or varbinary data types. styleIs the style of date format you want when converting datetime or smalldatetime data to character data (nchar, nvarchar, char, varchar, nchar, or nvarchar data types), or the string format when converting float, real, money, or smallmoney data to character data (nchar, nvarchar, char, varchar, nchar, or nvarchar data types).
In the table, the two columns on the left represent the style values for datetime or smalldatetime conversion to character data. Add 100 to a style value to get a four-place year that includes the century (yyyy).Without 
century 
(yy) With 
century 
(yyyy) Standard Input/Output**
- 0 or 100 (*)  Default mon dd yyyy hh:miAM (or PM)
1 101 USA mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 British/French dd/mm/yy
4 104 German dd.mm.yy
5 105 Italian dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 or 109 (*)  Default + milliseconds mon dd yyyy hh:mi:ss:mmmAM (or PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmdd
- 13 or 113 (*)  Europe default + milliseconds dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 or 120 (*)  ODBC canonical yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 (*)  ODBC canonical (with milliseconds) yyyy-mm-dd hh:mi:ss.mmm(24h)

解决方案 »

  1.   

    smalldatetime  类型 前面默认 为 1900-1-1,你取数的时候可以用 timevalue() 取出时间。
      

  2.   

    datetime型字段是这样的,存放的数据是包含了日期和时间两部分,如果存储时没有指定时间,则日期部分固定为1900-1-1
      

  3.   

    select convert(varchar(8),getdate(),108)
      

  4.   

    我也遇到这个问题了,但前面的回答似乎没有解决。我在插入日期时,如果该字段为空,则时间都为:1900-1-1,怎么样才能插入NULL值呢?