[英]Problematic DateTime Comparison SQL Query Not Working
我在执行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
投放另一个黑魔法?
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')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.