2016年1月31日 星期日

[R] R 使用Sql Server作為資料來源

利用R處理資料,需要使用到 MS SqlServer 的資料

上網查了一下方法,大致上需要設定: 

  1.  在電腦設定ODBC資料來源
  2.  R環境下載套件:  RODBC



電腦設定ODBC資料來源的步驟為: 

  • 開啟 "控制台"  > 系統管理工具 > ODBC資料來源

  • 點選"新增"





  • 選取適合的資料來源。  
    我的Sql Server是使用Sql Server Native Client 11.0所以選這個。



  • 接下來輸入連線識別名稱,R在連線Sql Server時會到ODBC讀取名稱的連線。
  • 接下來,  按照輸入Sql Server認證密碼.......,就完成設定了。

 R環境下載套件

R主要利用 RODBC這個套件連接 SQL Server
初次使用記得要下載RODBC。
下載有很多方式,這個連結有整理很多方法,提供大家參考。

我直接在R Console  輸入指令安裝
> install.packages("RODBC") # 下載 RODBC 套件


之後,就能利用R取得SQL Server的資料了。

# RODBC Example
# into R
library(RODBC)
Rconn <-odbcConnect("SqlServerSample", uid="test", pwd="1234567890")
tblSelect <- sqlQuery(Rconn, "select * from dbo.Orders")
close(Rconn)


[MS-SQL] SQL Server 2014 Time 時間相加

最近要計算總共的行車時間,資料型態為Time。
Sql server 無法做time的加減,網路上查了老半天也沒找到好的方法,
只好土法煉鋼,想辦法將

  1. 資料型態轉為文字,
  2. 前面加上日期,轉為Datetime
  3. 兩個參數進行累加運算
  4. 再跟原本的日期(在這個範例為2015-01-01,參數@date1)相減。



幸好這方法在前面的日期相同的時候,累加出來的時間基本上沒有太大的問題...
不知道有沒有好一點的作法,這個做法讓我很不安心,總感覺程式隨時會爆炸。
真的好想要知道有沒有好一點的作法...Q_Q