数据库时间

如何在wincc中用VB脚本访问系统时间,并把这个时间写入数据库中.

问题补充:
在SQL中建立了一个‘下料量’的数据表,一个字段名为‘时间’,数据类型为‘Datetime’.在wincc中写入以下代码:
 Dim objConnection

  Dim strConnectionString

  Dim lngValue
  
  Dim strSQL

  Dim objCommand

  

          strConnectionString = "Provider=MSDASQL;DSN=shiyan;UID=;PWD=;" 

   
   lngValue = FormatDateTime(Now(),0)
   
   strSQL = "INSERT INTO 数据类型 (时间) VALUES (" & lNGVALUE & ");" 

   
   Set objConnectIon = CreateObject("ADODB.Connection")

   objConnection.ConnectionStrIng = strConnectionString

   objConnection.Open

   Set objCommAnd = CreateObject("ADODB.Command")

   With objCommand

        .ActiveConnectIoN = objConnection

        .CommandTExt = strSQL

   End With

   objCommand.Execute

   Set objCommAnd = Nothing

   objConnection.Close

   Set objConnectIon = Nothing
   
  运行程序,数据库库中‘时间’字段无法写入内容,当把
 lngValue = FormatDateTime(Now(),0) 改为
 lngValue = date时

  运行程序,数据库库中‘时间’字段可写入内容,但一直显示为1905-6-11,请诸位高手指点迷津?

最佳答案

不同的数据库日期时间格式不太一样,这里仅以ACCESS为例,需要将时间列格式定义为"日期/时间"
  Dim Conn,rs
  Set Conn =  CreateObject("ADODB.Connection")
  Set rs =  CreateObject("ADODB.RecordSet")
  Conn.Open "Your DataSource Name"
  Dim strSQL
  rs.Open "SELECT * FROM YourDataTable",Conn,3,3
  rs.AddNew
  '.........
  rs("DATETIME")= Now '读取当前系统日期和时间,格式2008-8-14 10:24:23
  rs.Update
  HMIRUNTIME.Trace "DATETIME IS INSERT" & vbCrLf
  rs.Close
  Set rs=Nothing
  Conn.Close
  Set Conn= nothing

  查询某段时间的数据库记录SQL语句如下,注意要用#号将日期包起来
  rs.Open "SELECT * FROM YourDataTable WHERE DateTime >= #2008-08-13# AND DateTime <= #2008-08-14#",Conn,1,1
  HMIRUNTIME.Trace rs.RecordCount & vbCrLf

 补充:原来是SQL SERVER啊,呵呵。我帮你试了一下,VALUES要加单引号,你的SQL语句改成strSQL = "INSERT INTO 数据类型 (时间) VALUES ('" & lNGVALUE & "');" 就可以了。

提问者对于答案的评价:
很好,高手!不过现在又发现了一个问题,写入数据库中的日期为2002-8-15,时间对,不知何原因?

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 下午12:29
下一篇 2019年6月11日 下午12:29

相关推荐