繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM