在制作存储过程中代码如下Public Sub Insertlayout()
DB_Connect
  
  SqlStmt = "INSERT INTO layout (refno,quotationdate,clientname,faxnumber,clientcompany," _
            + "mecompany,atfirst,atlast,re)" _
            + "Values('" + Trim(refno) + "'," + Trim(str(quotationdate)) + ",'" + Trim(clientname) + "','" _
            + Trim(faxnumber) + "','" + Trim(clientcompany) + "','" + Trim(mecompany) + "','" _
            + Trim(atfirst) + "','" + Trim(atlast) + "','" + Trim(re) + "')"
            
  OdbcExt (SqlStmt)
    
  Rc = SQLFreeStmt(Hstmt, SQL_DROP)
  DB_Disconnect
End Sub其中变量quotationdate是日期型,(date)
quotationdate在sql数据库中是datetime。
变量quotationdate传递到Insertlayout正常,日期是2004-10-22,但是存放进去后就变为1905-05-20,为什么??????

解决方案 »

  1.   

    没用,照样如此,SqlStmt = "INSERT INTO layout (refno,quotationdate,clientname,faxnumber,clientcompany," _
                + "mecompany,atfirst,atlast,re)" _
                + "Values('" + Trim(refno) + "'," + Trim(Format(quotationdate, "yyyy-m-d")) + ",'" + Trim(clientname) + "','" _
                + Trim(faxnumber) + "','" + Trim(clientcompany) + "','" + Trim(mecompany) + "','" _
                + Trim(atfirst) + "','" + Trim(atlast) + "','" + Trim(re) + "')"
      

  2.   

    SqlStmt = "INSERT INTO layout (refno,quotationdate,clientname,faxnumber,clientcompany," _
                + "mecompany,atfirst,atlast,re)" _
                + "Values('" + Trim(refno) + "',CONVERT(DATETIME,'" + CStr(quotationdate)+ "',120),'" + Trim(clientname) + "','" _
                + Trim(faxnumber) + "','" + Trim(clientcompany) + "','" + Trim(mecompany) + "','" _
                + Trim(atfirst) + "','" + Trim(atlast) + "','" + Trim(re) + "')"
      

  3.   

    高手,但是为什么会这样,convert的功能是什么??
      

  4.   

    废话!
    2004-10-22=1972 <> '2004-10-22'
      

  5.   

    在保存前用CDate()函数判断一下是不是合法日期
        On Error GoTo ErrorHandler
            quotationdate= CDate(str(trim(quotationdate)))
            On Error GoTo 0
            Exit Sub
        End If
        
    ErrorHandler:
        If Not Err = 0 Then
            MsgBox "输入了非法的日期!", , "警 告"
        End If
        On Error GoTo 0
        Exit Sub
      

  6.   

    8楼的史留香的做法是正确的,但是CONVERT是什么函数,CONVERT(DATETIME,'" + CStr(quotationdate)+ "',120)是什么意思,120代表什么
      

  7.   

    CONVERT是数据转换函数。
    DATETIME是转换后的数据类型。quotationdate要转换的数据。120 是转换后的格式,表示yyyy-mm-dd hh:mm:ss[.fff]。