diff --git a/inst/csv/replacementPatterns.csv b/inst/csv/replacementPatterns.csv index f2290f1..c09b57d 100644 --- a/inst/csv/replacementPatterns.csv +++ b/inst/csv/replacementPatterns.csv @@ -1201,9 +1201,9 @@ duckdb,"DATEADD(day,@days,@date)",(@date + TO_DAYS(CAST(@days AS INTEGER))) duckdb,"DATEADD(m,@months,@date)",(@date + TO_MONTHS(CAST(@months AS INTEGER))) duckdb,"DATEADD(mm,@months,@date)",(@date + TO_MONTHS(CAST(@months AS INTEGER))) duckdb,"DATEADD(month,@months,@date)",(@date + TO_MONTHS(CAST(@months AS INTEGER))) -duckdb,"DATEADD(yy,@years,@date)",(@date + TO_YEAR(CAST(@years AS INTEGER))) -duckdb,"DATEADD(yyyy,@years,@date)",(@date + TO_YEAR(CAST(@years AS INTEGER))) -duckdb,"DATEADD(year,@years,@date)",(@date + TO_YEAR(CAST(@years AS INTEGER))) +duckdb,"DATEADD(yy,@years,@date)",(@date + TO_YEARS(CAST(@years AS INTEGER))) +duckdb,"DATEADD(yyyy,@years,@date)",(@date + TO_YEARS(CAST(@years AS INTEGER))) +duckdb,"DATEADD(year,@years,@date)",(@date + TO_YEARS(CAST(@years AS INTEGER))) duckdb,INTERVAL'@(-?[0-9]+)a.0 @b',INTERVAL'@a @b' duckdb,"DATEDIFF(d,@start, @end)","(CONVERT(DATE, @end) - CAST(@start AS DATE))" duckdb,"DATEDIFF(dd,@start, @end)",(CAST(@end AS DATE) - CAST(@start AS DATE)) diff --git a/tests/testthat/test-translate-duckdb.R b/tests/testthat/test-translate-duckdb.R index 18064f3..4a71f54 100644 --- a/tests/testthat/test-translate-duckdb.R +++ b/tests/testthat/test-translate-duckdb.R @@ -34,6 +34,14 @@ test_that("translate sql server -> DuckDB add months", { ) }) +test_that("translate sql server -> DuckDB add years", { + sql <- translate("DATEADD(yy,2,date)", targetDialect = "duckdb") + expect_equal_ignore_spaces( + sql, + "(date + TO_YEARS(CAST(2 AS INTEGER)))" + ) +}) + test_that("translate sql server -> DuckDB WITH SELECT INTO", { sql <- translate("WITH cte1 AS (SELECT a FROM b) SELECT c INTO d FROM cte1;", targetDialect = "duckdb"