我使用mysql数据库,向表中插入数据时,采用的SQL语句通常如下:string sql = "insert into tableName(para1,para2,para3) values('value1','value2','value3')";
就是想问一下,value上面的单引号是不是都需要呀,或者说与para的类型有关系?什么时候要,什么时候不要呢!请指点。。

解决方案 »

  1.   

    要看字段类型的,对应的字段是字符型就要加单引号,如果字段是数值型就不需要单引号,如果是日期型则用convert转换下。
      

  2.   

    字符号要单引号,数值不要单引号,这个我知道了。上面的,日期型用convert转换,是怎么实现的?插入表之前是string类型,在表中为date类型。请指教。
      

  3.   

    一般是以单引号来标记一个字符串。字符串指用单引号(‘'’)或双引号(‘"’)引起来的字符序列
    在MySQL中,当用 SET sql_mode='ANSI_QUOTES';来改变当前设置时,双引号也可以用。
      

  4.   

    这么说来,日期类型的不需要用convert转换,是吗?
      

  5.   

    如果是日期格式的:如:  sql = "insert into SendEmailTest(Sender,receiver,Title,Content,State,AddDate)
    values('" + Sender + "','" + Receiver + "','" + Title + "','" + Content + "','" + state + "','" + DateTime.Now + "')";
     state以前都是varchar类型的,state是int类型,可以是上面的也可以是"+state+",时间嘛,就是最后的了
      

  6.   

    日期不用转换也可以啊,你如果想转换比如:
    convert(datetime,'2010-10-22 22:20:54',131) 这是个时间转换的格式,你可以百度一下
      

  7.   

    插入的时候,如果你采用的sqlParameter模式传入的话,如要在程序里将字符串格式的日期转换成日期类型的。例如:string date = "2010-01-10 11:11:11"; DateTiem d = ConvertToDateTime(date);(C#程序)
    查询的时候,有时是需要将日期格式化。可以采用:convert(nvarchar(10),date,120)此处date是你数据库中的日期字段,如果数据库中值是:2010-01-10 11:11:11 通过convert输出后:结果为:2010-01-10
    convert中的120是指定转换格式的。
    SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
    SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
    SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
    SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
    SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
    SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
    SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
    SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
    SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
    SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
    SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06
    SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16
    SELECT CONVERT(varchar(100), GETDATE(), 12): 060516
    SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
    SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
    SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
    SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
    SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
    SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
    SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47
    SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
    SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
    SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
    SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
    SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
    SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
    SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
    SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
    SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
    SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49
    SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
    SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
    SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
    SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
    SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
    SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
    SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
      

  8.   

    字符类型的才需要加引号,整型不需要
    我们每次在sql查询分析器里select id from table where title='zz'也需要加引号
    而select id from table where id=3就不需要加引号,一样道理
      

  9.   

    int类型的不需要加 string类型的需要加 时间在库里面不用转的 但你肯定要肯义成datetime类型的
      

  10.   

    字符号要单引号,数值不要单引号,日期格式的你在数据库中定义的时候就应该是一个Date类型的,然后插入的一半应该是当时的时间吧。直接用 +DateTime.Now +就可以了。
      

  11.   

    想int这写数值的就不用,varchar这写字串就要
      

  12.   

    只有字符串类型的需要在加双引号,别的都不要啊,直接插入就OK了
    string sql="insert into table(num1,str1,number1) values(1,'"+"字符串"+"',0.5)";