有问题的DateTime比较SQL查询不起作用

时间:2014-05-22 16:12:39

标签: php sql date datetime odbc

我在执行ODBC查询时遇到问题。我正在努力实现一些简单的事情。

SELECT t.* FROM table t WHERE DateTime > '#2014-05-05 00:00:00#'

我试图在日期时间内使用或不使用哈希(#)和引号执行,但是没有成功。而且,而不是使用>,<和其他比较运算符我尝试使用BETWEEN

此外还有几种格式" dd / mm / yyyy"," mm / dd / yyyy"," dd.mm.yyyy"等等加上标准测试了sql格式(iso),结果是一样的。

方法如下:

$sql = "SELECT t.* FROM table t WHERE DateTime > '#...#'";
$result = odbc_fetch_array(odbc_exec($odbc_connection, $sql));

执行此操作后,我收到一些5-10符号二进制错误,但没有错误消息(使用odb_error和odbc_errormsg),除了:

此结果索引中没有可用的元组

(主题:PHP中的ODBC错误:“此结果索引中没有可用的元组”没有帮助)

可能是某些ODBC问题(旧版本等)还是我们应该通过odbc_exec施放另一个黑魔法?

3 个答案:

答案 0 :(得分:1)

也许ODBC在保留字datetime时遇到问题。 我不知道如何在PHP中使用引号,尝试

SELECT t.* FROM table t WHERE t."DateTime" > '20140505'";

答案 1 :(得分:1)

您应该将ODBC语法用于{ ts '1998-05-02 01:23:56.123' }的日期时间。您可以省略部分秒数。请参阅here

答案 2 :(得分:0)

您是否尝试过使用TO_DATE()函数?您可以指定正在使用的格式。

SELECT t.* FROM table t WHERE DateTime > TO_DATE('2014-05-05 00:00:00','YYYY-MM-DD HH24:MI:SS')