当我从连接中检索带有记录集的数据时,我无法控制日期语言。这就是我检索数据的方法:
Set rsData = New ADODB.Recordset
Set rsData = conODBC.Execute(sql)
SQL语句的行如下:
TO_CHAR(TO_DATE(TO_CHAR(DB_MONTH), 'MM'),'MON')||DB_YEAR AS DATE_STR
它将DB_MONTH和DB_YEAR转换为DEC16,并且与SQL Developer完美配合。
但是,如果它作为带有VBA的Recordset字段,日期将转换为德语(我使用德语Excel),我收到DEZ16。
当我将数据卸载到工作表中并继续使用它时,这成为一个问题,因为我无法控制数据字符串的返回方式。
答案 0 :(得分:0)
在运行查询之前,必须将数据语言设置为所需的值。应该是这样的:
Dim cmd As New ADODB.Command
cmd.CommandType = CommandType.Text
cmd.CommandText = "ALTER SESSION SET NLS_DATE_LANGUAGE = 'AMERICAN';"
cmd.Execute