MS SQL ServerdateExcel

我有从SQL Server链接到Excel文件的数据。 SQL Server上的列格式是datetime2

当我通过ODBC连接获取数据时,它会以string的forms出现?

我试过使用

 CAST(column AS DATE ) 

但是这并没有奏效。

我尝试通过重新格式化

 CONVERT(VARCHAR(10), column, 103) 

以及但没有工作。

我试图通过微软查询检索数据,但没有奏效。

目前我正在使用VBA代码,如:

 While (ActiveCell.Value <> "") ActiveCell.Value = DATEVALUE(ActiveCell.Value) ActiveCell.Offset(1,0).Activate Wend 

并循环遍历需要这种处理的每列,但是多列中的100000行需要永久循环。 有没有其他的select?

看来Excel和Access也不像SQL Server的datetime2格式。

我已经将数据转换为date时间格式,现在似乎正在工作。

您可以简单地将Excel中的date转换为以下格式:

“YYYY-MM-DD HH:mm:ss”

这是默认的ODBC规范格式 。 在这种情况下,将进行隐式转换并且将实现正确的结果。

另一种方法是尝试使用另一种风格执行转换:

CONVERT(VARCHAR(10),列,120)

没有macros需要,我们Excel表列而不是。

Excel中的任何ODBC连接都会返回一个表。 只需在表格右侧添加一个新列,并进行计算。 它应该看起来像这样= DATEVALUE([@ DateColumnFromODBC])

该列将与您的表一起添加和缩小,并且只要ODBC连接保持不变,就始终保留它的引用。