diff --git a/tests/test_datetime.py b/tests/test_datetime.py
index 815db5181d1b8bba97af3d18326c478a346789e9..cda35a1f013833744f314fda6a5bd87547cda5b9 100644
--- a/tests/test_datetime.py
+++ b/tests/test_datetime.py
@@ -1418,3 +1418,510 @@ def test_greater_operator():
             h.execute_query("FIND Simple*").delete()
         except BaseException:
             pass
+
+
+def test_greater_equal_operator():
+    try:
+        rec = set_up_rec()
+        # query with > Date YYYY-MM-ddThh:mm:ss
+        d = "2015-05-05T20:15:30"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.122"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.124"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:29.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:29"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:31.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:31"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+
+        # Date YYYY-MM-ddThh:mm:ss.ns
+        d = "2015-05-05T20:15:30.123"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.122"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.124"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:29.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:29"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:31.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:31"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+
+        # Date YYYY-MM-dd
+        d = "2015-05-05"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+
+        # Date YYYY-MM
+        d = "2015-05"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+
+        # Date YYYY
+        d = "2015"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+
+    finally:
+        try:
+            h.execute_query("FIND Simple*").delete()
+        except BaseException:
+            pass
+
+
+def test_smaller_equal_operator():
+    try:
+        rec = set_up_rec()
+
+        # Date YYYY-MM-ddThh:mm:ss
+        d = "2015-05-05T20:15:30"
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.122"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.124"))
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:29.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:29"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:31.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:31"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+        # Date YYYY-MM-ddThh:mm:ss.ns
+        d = "2015-05-05T20:15:30.123"
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.122"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.124"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:29.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:29"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:31.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:31"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+        # Date YYYY-MM-dd
+        d = "2015-05-05"
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+        # Date YYYY-MM
+        d = "2015-05"
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+        # Date YYYY
+        d = "2015"
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+    finally:
+        try:
+            h.execute_query("FIND Simple*").delete()
+        except BaseException:
+            pass