@@ -1189,6 +1189,94 @@ public function testOrWhereNotBetweenColumns()
11891189 $ this ->assertEquals ([0 => 2 ], $ builder ->getBindings ());
11901190 }
11911191
1192+ public function testWhereValueBetween ()
1193+ {
1194+ $ builder = $ this ->getBuilder ();
1195+ $ builder ->select ('* ' )->from ('users ' )->whereValueBetween ('2020-01-01 19:30:00 ' , ['created_at ' , 'updated_at ' ]);
1196+ $ this ->assertSame ('select * from "users" where ? between "created_at" and "updated_at" ' , $ builder ->toSql ());
1197+ $ this ->assertEquals ([0 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1198+
1199+ $ builder = $ this ->getBuilder ();
1200+ $ builder ->select ('* ' )->from ('users ' )->whereValueBetween ('2020-01-01 19:30:00 ' , ['created_at ' , 'updated_at ' ]);
1201+ $ this ->assertSame ('select * from "users" where ? between "created_at" and "updated_at" ' , $ builder ->toSql ());
1202+ $ this ->assertEquals ([0 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1203+
1204+ $ builder = $ this ->getBuilder ();
1205+ $ builder ->select ('* ' )->from ('users ' )->whereValueBetween ('2020-01-01 19:30:00 ' , [new Raw (1 ), new Raw (2 )]);
1206+ $ this ->assertSame ('select * from "users" where ? between 1 and 2 ' , $ builder ->toSql ());
1207+ $ this ->assertEquals ([0 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1208+
1209+ $ builder = $ this ->getBuilder ();
1210+ $ builder ->select ('* ' )->from ('users ' )->whereValueBetween (new Raw (1 ), ['created_at ' , 'updated_at ' ]);
1211+ $ this ->assertSame ('select * from "users" where 1 between "created_at" and "updated_at" ' , $ builder ->toSql ());
1212+ }
1213+
1214+ public function testOrWhereValueBetween ()
1215+ {
1216+ $ builder = $ this ->getBuilder ();
1217+ $ builder ->select ('* ' )->from ('users ' )->where ('id ' , 2 )->orWhereValueBetween ('2020-01-01 19:30:00 ' , ['created_at ' , 'updated_at ' ]);
1218+ $ this ->assertSame ('select * from "users" where "id" = ? or ? between "created_at" and "updated_at" ' , $ builder ->toSql ());
1219+ $ this ->assertEquals ([0 => 2 , 1 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1220+
1221+ $ builder = $ this ->getBuilder ();
1222+ $ builder ->select ('* ' )->from ('users ' )->where ('id ' , 2 )->orWhereValueBetween ('2020-01-01 19:30:00 ' , ['created_at ' , 'updated_at ' ]);
1223+ $ this ->assertSame ('select * from "users" where "id" = ? or ? between "created_at" and "updated_at" ' , $ builder ->toSql ());
1224+ $ this ->assertEquals ([0 => 2 , 1 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1225+
1226+ $ builder = $ this ->getBuilder ();
1227+ $ builder ->select ('* ' )->from ('users ' )->where ('id ' , 2 )->orWhereValueBetween ('2020-01-01 19:30:00 ' , [new Raw (1 ), new Raw (2 )]);
1228+ $ this ->assertSame ('select * from "users" where "id" = ? or ? between 1 and 2 ' , $ builder ->toSql ());
1229+ $ this ->assertEquals ([0 => 2 , 1 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1230+
1231+ $ builder = $ this ->getBuilder ();
1232+ $ builder ->select ('* ' )->from ('users ' )->where ('id ' , 2 )->orWhereValueBetween (new Raw (1 ), ['created_at ' , 'updated_at ' ]);
1233+ $ this ->assertSame ('select * from "users" where "id" = ? or 1 between "created_at" and "updated_at" ' , $ builder ->toSql ());
1234+ }
1235+
1236+ public function testWhereValueNotBetween ()
1237+ {
1238+ $ builder = $ this ->getBuilder ();
1239+ $ builder ->select ('* ' )->from ('users ' )->whereValueNotBetween ('2020-01-01 19:30:00 ' , ['created_at ' , 'updated_at ' ]);
1240+ $ this ->assertSame ('select * from "users" where ? not between "created_at" and "updated_at" ' , $ builder ->toSql ());
1241+ $ this ->assertEquals ([0 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1242+
1243+ $ builder = $ this ->getBuilder ();
1244+ $ builder ->select ('* ' )->from ('users ' )->whereValueNotBetween ('2020-01-01 19:30:00 ' , ['created_at ' , 'updated_at ' ]);
1245+ $ this ->assertSame ('select * from "users" where ? not between "created_at" and "updated_at" ' , $ builder ->toSql ());
1246+ $ this ->assertEquals ([0 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1247+
1248+ $ builder = $ this ->getBuilder ();
1249+ $ builder ->select ('* ' )->from ('users ' )->whereValueNotBetween ('2020-01-01 19:30:00 ' , [new Raw (1 ), new Raw (2 )]);
1250+ $ this ->assertSame ('select * from "users" where ? not between 1 and 2 ' , $ builder ->toSql ());
1251+ $ this ->assertEquals ([0 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1252+
1253+ $ builder = $ this ->getBuilder ();
1254+ $ builder ->select ('* ' )->from ('users ' )->whereValueNotBetween (new Raw (1 ), ['created_at ' , 'updated_at ' ]);
1255+ $ this ->assertSame ('select * from "users" where 1 not between "created_at" and "updated_at" ' , $ builder ->toSql ());
1256+ }
1257+
1258+ public function testOrWhereValueNotBetween ()
1259+ {
1260+ $ builder = $ this ->getBuilder ();
1261+ $ builder ->select ('* ' )->from ('users ' )->where ('id ' , 2 )->orWhereValueNotBetween ('2020-01-01 19:30:00 ' , ['created_at ' , 'updated_at ' ]);
1262+ $ this ->assertSame ('select * from "users" where "id" = ? or ? not between "created_at" and "updated_at" ' , $ builder ->toSql ());
1263+ $ this ->assertEquals ([0 => 2 , 1 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1264+
1265+ $ builder = $ this ->getBuilder ();
1266+ $ builder ->select ('* ' )->from ('users ' )->where ('id ' , 2 )->orWhereValueNotBetween ('2020-01-01 19:30:00 ' , ['created_at ' , 'updated_at ' ]);
1267+ $ this ->assertSame ('select * from "users" where "id" = ? or ? not between "created_at" and "updated_at" ' , $ builder ->toSql ());
1268+ $ this ->assertEquals ([0 => 2 , 1 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1269+
1270+ $ builder = $ this ->getBuilder ();
1271+ $ builder ->select ('* ' )->from ('users ' )->where ('id ' , 2 )->orWhereValueNotBetween ('2020-01-01 19:30:00 ' , [new Raw (1 ), new Raw (2 )]);
1272+ $ this ->assertSame ('select * from "users" where "id" = ? or ? not between 1 and 2 ' , $ builder ->toSql ());
1273+ $ this ->assertEquals ([0 => 2 , 1 => '2020-01-01 19:30:00 ' ], $ builder ->getBindings ());
1274+
1275+ $ builder = $ this ->getBuilder ();
1276+ $ builder ->select ('* ' )->from ('users ' )->where ('id ' , 2 )->orWhereValueNotBetween (new Raw (1 ), ['created_at ' , 'updated_at ' ]);
1277+ $ this ->assertSame ('select * from "users" where "id" = ? or 1 not between "created_at" and "updated_at" ' , $ builder ->toSql ());
1278+ }
1279+
11921280 public function testBasicOrWheres ()
11931281 {
11941282 $ builder = $ this ->getBuilder ();
0 commit comments