MSSQL在PHP中的日期时间介于;工作不正常


MSSQL datetime between in PHP doesn't work correctly

以下是示例代码,它在Dbvisualizer中运行良好,但在php脚本中不起作用。

select
convert(varchar, oh.date,101),
oh.id
from oh
where oh.state=1 and convert(varchar,oh.date,104) between '17.12.2015' and '17.12.2015'
order by oh.id desc,date desc

在Dbvisualizer中,它返回选定日期范围内的行,但在php中,它从表中返回所有记录。mssql.datetimeconvert没有影响。哪里有问题?

首先,不要将日期转换为varchar来执行字符串比较。让SQL Server将日期字符串转换为日期,以便进行日期比较。其次,您的BETWEEN列出了相同的日期,因此返回的唯一记录将从2015年12月17日午夜开始。此SQL更可取:

select convert(varchar, oh.date,101), oh.id
from oh
where oh.state=1 and   oh.date between '2015-12-17' and '2015-12-17'
order by oh.id desc,date desc

如果这不起作用,你能发布你的PHP代码吗?