我在执行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
施放另一个黑魔法?
答案 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')