请教日期写入SQL2005的出错问题:我这样写 Response.Write(DateTime.Now.AddMonths(+1).ToString("yyyy/M"));
得到的结果正确,是 2010-10但我在将 DateTime.Now.AddMonths(+1).ToString("yyyy/M") 放到sql语句中,直接插到sql2005的数据库中,字段的类型是datetime,却记录成以下的结果。
1905-6-24 0:00:00这个结果明显就是错的,请问是什么原因?为什么会这样?我怎样写才能将正确结果插到SQL的datetime类型字段中?谢谢我的语句是这样写的
SqlCommand In_Comd = new SqlCommand("insert into biao(YM) values(" + DateTime.Now.AddMonths(+1).ToString("yyyy/M") + ")", MyConn);

解决方案 »

  1.   

    干吗要弄这样:2010-10 的格式存到数据库中。直接Tostring,从数据库中取出来的时候再格式化我觉得还可以的。
      

  2.   

    TO:1L
    为了方便以后大量数据时进行日期查询和比较,要通过年和月生成很多报表,所以用datetime类型字段
      

  3.   

    SqlCommand In_Comd = new SqlCommand("insert into biao(YM) values('" + DateTime.Now.AddMonths(+1).ToString("yyyy/M") + "')", MyConn);这样试试,加了一对引号。
      

  4.   

    SqlCommand In_Comd = new SqlCommand("insert into biao(YM) values('" + DateTime.Now.AddMonths(+1).ToString("yyyy-MM-dd HH:mm:ss") + "')", MyConn);
      

  5.   

    TO:4楼您的答案是正确的,但有两点不理解,谢谢1、为什么要("yyyy-MM-dd HH:mm:ss") 这样的格式写进去?因为我只想存年和月进去
    2、为什么我("yyyy/M")这样的格式写进去?会有这么奇怪的结果能得到您的回答非常难得,谢谢
      

  6.   

    数据库默认格式是yyyy-MM-dd HH:mm:ss的,只存储年月日,可以只写yyyy-MM-dd
      

  7.   

    最好采用参数传递的方式。
    SqlCommand In_Comd = new SqlCommand("insert into biao(YM) values(@P_YM)", MyConn);
    In_Comd.Parameters.Add(new SqlParameter("@P_YM", DateTime.Now.AddMonths(+1)));
      

  8.   

    SqlCommand In_Comd = new SqlCommand("insert into biao(YM) values('" + DateTime.Now.AddMonths(+1).ToString("yyyy-MM") +"-01" + "')", MyConn);