用null--空值insert t(日期) values(null)用空值字符時,有隱性轉換為日期

解决方案 »

  1.   

    SQL Server用两个四字节的整数内部存储datetime类型的值。第一个4字节存储basedate(即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日,精确到分钟。 
    所以 ' '時那個欄位都為變為1900/01/01。联机帮助里都有的。
      

  2.   

    不错,学习。insert t(日期) values(null) 就OK了。
      

  3.   


    大致思路如下: 
    画面:
    声明为可空类型 
    DateTime? dt = new DateTime();
    dt=null; 
    InsertInfo(dt);//调用插入方法
    插入语句:(插入)
    public void InsertInfo(datatime? dt)
    {
    .........
    insert into table (dt) values(@dt)
    if(dt!=null)
    {
    cmd.paramertes["@dt"].value=dt;
    }
    else
    {
    cmd.paramertes["@dt"].value=DBNull.Value;
    }
    .........
    }
      

  4.   

    用NULL的話我顯示時,NULL值也會顯示在欄位里啊.
    這該怎麼判,因為涉及到多個頁面的查詢,所以改在頁面中再判斷NULL值時就很麻煩也
      

  5.   

    insert #(日期) values(null) ~~~~~自动转换
      

  6.   

    use test
    gocreate table dbo.Test_time
    (
    id int identity(1,1)
    ,time datetime
    )insert into dbo.Test_time
    select nullinsert into dbo.Test_time
    select ''select *
    from dbo.Test_time
      

  7.   

    只能设置为null.
    或者字段设置为varchar/char,然后空值为''
      

  8.   

    16樓的是什麼意思....看樣子我只能用null值了?各位仁兄!