Mam bazę danych SQL (2012), do której próbuję uzyskać dostęp przez R (R Studio). Od Enterprise Manager to właśnie wygląda:Zarządzanie RODBC datami z serwera SQL
select top 5[date],value from dbo.history
1991-02-11 11.1591
1991-02-12 11.2
1991-02-13 11.3501
1991-02-14 11.37
1991-02-15 11.3002
Jednak z badań jest to, co mam:
sqlQuery(DF_CN,'select top 5 [date],value from dbo.history')
date value
1 0011-02-19 11.16
2 0012-02-19 11.20
3 0013-02-19 11.35
4 0014-02-19 11.37
5 0015-02-19 11.30
Gdy próbuję i zaznaczyć wszystkie dane z tabeli, to co mam
sqlQuery(DF_CN,'select * from dbo.history')
Error in charToDate(x) :
character string is not in a standard unambiguous format
to może być coś o domyślnym formacie rrrr-mm-dd z serwera SQL, które mogę zmienić, jeśli mogę użyć CONVERT
, ale to wygląda jak hack i SELECT *
ran Nie działam.
Czy jest coś, co mogę zrobić, aby rozpoznać daty programu SQL Server?
Ben
To doprowadza mnie do szału - na pewno ktoś widział tego wcześniej - istnieje wyraźny rozdźwięk między wyjściem SQL Server i co R czyta.
Używam programów RStudio 0.98.1091 i R x64 3.1.2. SQL Server 2014 Microsoft SQL Server Management Studio 12.0.2000.8 Microsoft Data Access Components (MDAC) 6.1.7601.17514 Microsoft MSXML 3,0 4,0 6,0 Microsoft Internet Explorer 9.10.9200.17148 Microsoft .NET Framework 4.0.30319.18444 System operacyjny 6.1. 7601
Sterownik ODBC 11 dla SQL Server.
Wszystko wygląda na bieżąco w moim systemie.
kolumna [date]
była typu DATE
, jest teraz DATETIME
. Teraz to rozumiem;
sqlQuery(DF_CN,('select * from dbo.history')
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
Wygląda na to, że niektóre rozłączają się między konfiguracją serwera SQL a konfiguracją R.
Czy przechowywania dat jako wartości datetime lub wartości VARCHAR w tabeli SQL? W przypadku tych ostatnich rozważ zmianę ich na wartości DATETIME, które powinny być lepiej obsługiwane przez R. – Dan
Daty są zapisywane jako DATETIME w bazie danych SQL Server –