在sql insert查询中将datetime转换为smalldatetime

时间:2016-02-17 03:19:50

标签: c# sql datetime sql-insert smalldatetime

我有像这样的INSERT查询

INSERT INTO tna_temp_attendance VALUES('" + strEmpCode + "', CONVERT(SMALLDATETIME, '" + dtDateTime.ToString() + "'), 0, " + _inOutMode.ToString() + ", null, 0, 'CHO-', '" + strMachine + "')

执行此查询时发生此错误 “将varchar数据类型转换为日期时间数据类型会导致超出范围的值

帮助Plz

我的数据库有此表“ tna_temp_attendance ” 它的列是

  • Emp_id char(6)
  • Wdate smalldatetime
  • Is_read
  • Machine_Status
  • Process_Status
  • Is_Error
  • Loc_no char(4)
  • Ip varchar(16)

修改

我也这样过了日期

CONVERT SMALLDATETIME ,'“+ Convert.ToDateTime(dtDateTime.ToString(”yyyy-MM-dd hh:mm:ss“))+”')

但它也无法正常工作

2 个答案:

答案 0 :(得分:0)

我终于做到了。  我宣布了一个字符串。

  
      
  • string dt = DateTime.Now.ToString();
  •   

然后将其转换为DateTime

  

DateTime ndt = Convert.ToDateTime(dt);

然后我用了

  

CONVERT(SMALLDATETIME,CONVERT(DATETIME,'" + ndt +"'))

并且工作了。谢谢你们

答案 1 :(得分:-1)

尝试使用ISO格式将日期插入SQL Server,如下所示:

dtDateTime.ToString("yyyyMMdd")