Estou tentando importar uma tabela do Excel que possui uma coluna com datas. Minha consulta funciona sem a data da coluna. Estou usando ODBC para importar.
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ActiveWorkbook.FullName & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
cn.Open strCon
cn.Execute "INSERT INTO [ODBC;DRIVER=SQL Server;SERVER=MYSERVEREXPRESS;Trusted_Connection=Yes;DATABASE=TESTDB].[tbTableTest1] ([opDate], [columnFloat], [columnText]) SELECT t.MY_DATE, t.COL1, t.COL2 FROM [BD$] t"
Minha mesa:
MY_DATE COL1 COL2
11/26/2012 21,43 MAR
11/26/2012 21,45 GFM
O que estou fazendo errado?
Internamente, o Excel armazena datas como um valor inteiro. Já me deparei com isso antes e resolvi tanto no SSIS quanto no TSQL direto
https://stackoverflow.com/questions/9085928/reading-in-date-column-if-first-row-isnt-a-date-with-ssis-excel-data-source/9086831#9086831
No seu caso, pode ser necessário criar uma coluna calculada que realmente aplique a fórmula, supondo que você não precise se preocupar com a data de 1900.
Obrigado rapazes.
Acabei de transformar o formato DATE/Number para o formato String.