如何在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