所以我在 Microsoft SQL Server 11 上运行了一个数据库,该表hpfc_prices
包含按时间顺序排列的多个条目,大致如下所示:
|date (varchar(255))|time (varchar(255))|price (decimal(25,10))|
|===================|===================|======================|
|01.01.2016 |00:00 |[some value] |
|01.01.2016 |01:00 |[some value] |
|01.01.2016 |02:00 |[some value] |
|... |... |... |
|01.01.2016 |23:00 |[some value] |
|02.01.2016 |00:00 |[some value] |
|02.01.2016 |01:00 |[some value] |
|... |... |... |
此表的时间跨度为 2016 年 1 月 1 日至 2020 年 12 月 31 日,每个条目代表一小时。现在我想在 PHP 脚本中加载表格的一部分,比如说 2017 年全年。为此,我必须使用 Medoo 作为数据库框架,并且我正在运行以下代码:
$db = new medoo($database_config);
$hpfcStart = "01.01.2017";
$hpfcEnd = "31.12.2017";
$arr = $db->select("hpfc_prices",["date","time","price"],["AND" => ["date[>=]" => $hpfcStart, "date[<=]" => $hpfcEnd]]);
var_dump($arr);
Medoo 查询通过调试转换为以下 SQL 查询:
SELECT "date","time","price" FROM "hpfc_prices" WHERE "date" >= '01.01.2017' AND "date" <= '31.01.2018
现在的问题是输出现在包含所有表,而不仅仅是 2017 年的所有条目。我假设查询在日期比较时失败,因为 Medoo 将字符串与 varchar 进行比较。根据我的经验,这适用于 MySQL,但我不太确定 MSSQL/Medoo。谁能告诉我如何正确比较日期?