我正在尝试将一些数据从 SQL Server 提取到 Microsoft Excel 2007。我已经设置了连接,除了时间戳之外,一切似乎都工作正常。我只能得到要通过的日期,而不是相应的小时、分钟或秒。我可以使用 Excel ODBC 查询工具从 SQL 数据库中提取数据,并且在那里列出了小时和分钟。我尝试了各种不同的 CAST() 选项。他们都没有解决我的问题。我正在运行 Windows XP。我不知道服务器上运行的是什么版本的 Microsoft SQL。我的代码如下所示。
Sub Populate_Sheet(theSheet As Worksheet)
'Declare variables'
Dim objMyConn As ADODB.Connection
Dim objMyCmd As ADODB.Command
Dim objMyRecordset As ADODB.Recordset
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
Dim executeThisSQLStatement As String
'Dim target As Worksheet
'Set target = theSheet
executeThisSQLStatement = "SELECT CAST(DateHour_CPT AS TIMESTAMP) FROM EnergyData_v"
'Open Connection'
objMyConn.ConnectionString = "driver={SQLServer};Data Source=DataMart;User ID=acctname.value;Password=mypass.value;"
objMyConn.Open
'Set and Excecute SQL Command'
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = executeThisSQLStatement
objMyCmd.CommandType = adCmdText
'Open Recordset'
Set objMyRecordset.Source = objMyCmd
objMyRecordset.Open
'Copy Data to Excel'
theSheet.Range("A6").CopyFromRecordset objMyRecordset
End Sub