diff --git a/R/dbi-shims.R b/R/dbi-shims.R index 4939060..60a9fe3 100644 --- a/R/dbi-shims.R +++ b/R/dbi-shims.R @@ -43,12 +43,11 @@ db_save_query.SQLServerConnection <- function (con, sql, name, temporary = TRUE, # http://smallbusiness.chron.com/create-table-query-results-microsoft-sql-50836.html if (temporary) name <- paste0("#", name) tt_sql <- dplyr::build_sql("SELECT * INTO ", dplyr::ident(name), " FROM ", - sql_subquery(con, sql), con = con) + dplyr::sql_subquery(con, sql), con = con) a <- dbSendUpdate(con, tt_sql) name } - #' @importFrom dplyr db_drop_table #' @export db_drop_table.SQLServerConnection <- function (con, table, force = FALSE, ...) { diff --git a/R/dplyr.R b/R/dplyr.R index 5a5556a..d6a593a 100644 --- a/R/dplyr.R +++ b/R/dplyr.R @@ -68,7 +68,12 @@ tbl.src_sqlserver <- function (src, from, ...) { #' @export src_translate_env.src_sqlserver <- function (x) { dplyr::sql_variant( - scalar = dplyr::base_scalar, + scalar = dplyr::sql_translator(.parent = dplyr::base_scalar, + # http://sqlserverplanet.com/tsql/format-string-to-date + as.POSIXct = function(x) build_sql("CAST(", x, " AS DATETIME)"), + # DATE data type only available since SQL Server 2008 + as.Date = function (x) build_sql("CAST(", x, " AS DATE)") + ), aggregate = dplyr::sql_translator(.parent = dplyr::base_agg, n = function() dplyr::sql("COUNT(*)"), mean = dplyr::sql_prefix('AVG'),