diff --git a/src/metabase/query_processor/parameters.clj b/src/metabase/query_processor/parameters.clj
index 219eeb56e4e98ce7a3096821b99ba7174be78a83..396b70f779ef7e912cf68cc5a39abbb71fe51fab 100644
--- a/src/metabase/query_processor/parameters.clj
+++ b/src/metabase/query_processor/parameters.clj
@@ -1,5 +1,5 @@
 (ns metabase.query-processor.parameters
-  "Code for handling parameter substitution in MBQL & native queries."
+  "Code for handling parameter substitution in MBQL queries."
   (:require [clojure.core.match :refer [match]]
             [clojure.string :as s]
             (clj-time [core :as t]
diff --git a/src/metabase/query_processor/sql_parameters.clj b/src/metabase/query_processor/sql_parameters.clj
index b80a38b13f678768c0c52ebef33f56c3951c4265..61a453a4031d0fbf823347f1e418e210e87fa1af 100644
--- a/src/metabase/query_processor/sql_parameters.clj
+++ b/src/metabase/query_processor/sql_parameters.clj
@@ -1,5 +1,5 @@
 (ns metabase.query-processor.sql-parameters
-  "Param substitution for *SQL* drivers."
+  "Param substitution for *SQL* queries."
   (:require [clojure.string :as s]
             [honeysql.core :as hsql]
             [metabase.db :as db]
@@ -27,7 +27,7 @@
 (defrecord ^:private NumberValue [value])
 
 (defn- dimension-value->sql [dimension-type value]
-  (if (contains? #{"date/range" "date/month-year" "date/quarter-year"} dimension-type)
+  (if (contains? #{"date/range" "date/month-year" "date/quarter-year" "date/relative"} dimension-type)
     (->sql (map->DateRange ((resolve 'metabase.query-processor.parameters/date->range) value *timezone*))) ; TODO - get timezone from query dict
     (str "= " (->sql value))))
 
diff --git a/src/metabase/util.clj b/src/metabase/util.clj
index 4b2a0621420acea6d8c7241cd6cc05ce703a4d98..3382db1d03d2d9d83c0cb262593aff4ff4ff4c62 100644
--- a/src/metabase/util.clj
+++ b/src/metabase/util.clj
@@ -478,7 +478,8 @@
      ~@body
      ~'<>))
 
-(def ^String ^{:style/indent 2} format-color
+(def ^String ^{:style/indent 2, :arglists '([color-symb x] [color-symb format-str & args])}
+  format-color
   "Like `format`, but uses a function in `colorize.core` to colorize the output.
    COLOR-SYMB should be a quoted symbol like `green`, `red`, `yellow`, `blue`,
    `cyan`, `magenta`, etc. See the entire list of avaliable colors
diff --git a/test/metabase/query_processor/sql_parameters_test.clj b/test/metabase/query_processor/sql_parameters_test.clj
index 6c3ebf2e33932ebce6621d528b5cf537bab5feac..369524b1c9689a6f68fcbab5840071c6f799a9d5 100644
--- a/test/metabase/query_processor/sql_parameters_test.clj
+++ b/test/metabase/query_processor/sql_parameters_test.clj
@@ -364,3 +364,16 @@
          :native     {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" (checkins-identifier))
                       :template_tags {:checkin_date {:name "checkin_date", :display_name "Checkin Date", :type "dimension", :dimension ["field-id" (data/id :checkins :date)]}}}
          :parameters []}))))
+
+;; test that relative dates work correctly. It should be enough to try just one type of relative date here,
+;; since handling them gets delegated to the functions in `metabase.query-processor.parameters`, which is fully-tested :D
+(datasets/expect-with-engines sql-parameters-engines
+  [0]
+  (first-row
+    (format-rows-by [int]
+      (qp/process-query
+        {:database   (data/id)
+         :type       :native
+         :native     {:query (format "SELECT COUNT(*) FROM %s WHERE {{checkin_date}}" (checkins-identifier))
+                      :template_tags {:checkin_date {:name "checkin_date", :display_name "Checkin Date", :type "dimension", :dimension ["field-id" (data/id :checkins :date)]}}}
+         :parameters [{:type "date/relative", :target ["dimension" ["template-tag" "checkin_date"]], :value "thismonth"}]}))))