有问题的日期时间比较SQL查询不工作


Problematic DateTime Comparison SQL Query Not Working

我在执行ODBC查询时遇到问题。我想做一些简单的事情。

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

我试过在日期时间周围使用或不使用哈希(#)和引号来执行,但没有成功。另外,不用>,

另外几种格式"dd/mm/yyyy", "mm/dd/yyyy", "dd.mm. yyyy"。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),除了:

此结果索引下没有元组

(主题:ODBC错误在PHP: "没有元组在这个结果索引"是没有帮助的)

可能是ODBC的问题(旧版本等)或者我们应该通过odbc_exec再施一个黑魔法吗?

可能ODBC在保留字datetime上有问题。我不知道怎么在PHP中转义,试试

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

日期时间应该使用ODBC语法,即{ ts '1998-05-02 01:23:56.123' }。你可以省略部分秒。看到这里。

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

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