在这样一句定义中:
string sql=" update yuanshi_moni set 调级时间="+a+" where...";
数据库为SQL,其中"调级时间"字段类型为datetime型(不能变!),a为系统时间,为datetime型,运行后系统报错,原因是sql为string型,而"调级时间"为datetime型,不能赋值,我的问题是:在"调级时间"字段类型不变的前提下,如何给它赋值?

解决方案 »

  1.   

    我的问题是:在"调级时间"字段类型不变的前提下,如何给它赋值?修改数据表中字段的定义,否则就必须将datetime型转换成字符串
      

  2.   

    string sql=" update yuanshi_moni set 调级时间='"+a.ToString("yyyy-MM-dd)+"' where...";
    或使用DateDiff
      

  3.   

    string sql=" update yuanshi_moni set 调级时间=convert(varchar(100),"+a+",23) where...";
      

  4.   

    用参数
    string sql="update yuanshi_moni set 调级时间=@time where...";
    SqlCommandx.CommandText=sql;
    SqlCommandx.Parameters.Add(new SqlParameter("@time",a));
    ………………
      

  5.   

    有个比较笨的办法,先构造一个DateTime dt 对象,然后再用dt.ToString("yyyy-MM-dd HH:mm:ss")
      

  6.   

    SQL语句里面,支持对日期型的变量直接赋值字符串日期的,就是:date1 = '2010-5-24T12:34:56' 这样的语句的。应该是默认会做一个转换。
      

  7.   

    string sql=" update yuanshi_moni set 调级时间='"+a.ToString("yyyy-MM-dd)+"' where...";
    正解啊
      

  8.   

    string sql=" update yuanshi_moni set 调级时间='"+a.Now.ToString()+"' where...";