当我运行此查询时:
SELECT InwardDate
FROM tblDoc
WHERE InwardDate > DATE() AND (InwardDate IS NOT NULL)
我得到了这个结果
5/1/2017
我在数据库中的行具有值:
5/1/2017
因此,5/1/2017
不是> 5/1/2017
,结果应该是没有返回记录。
然后我去尝试了这个,以防有时间差我无法看到:
SELECT DATEDIFF("s", InwardDate, DATE()) AS DiffBetween, InwardDate
FROM tblDoc
WHERE InwardDate > DATE() AND (InwardDate IS NOT NULL)
我明白了:
请注意,当我这样做时:
SELECT DATE() FROM tblDoc
我明白了:
5/1/2017
我看到第一个查询返回一个看似不合逻辑的结果,因为存储在db中的日期与SQL中的日期具有相同的确切值,但第一个查询表明db列值大于{返回的日期{1}}功能。我缺少什么?
答案 0 :(得分:2)
我现在在哪里,现在是5/1/2017。
如果是这样,当然会排除该日期的值:
WHERE INWARDDATE > Date()
如果2个日期不是,则该日期应该报告一个值 相同。
嗯,是的,但你没有回复记录,因此没有记录。
您看到的值是新记录(*)上的InwardDate的默认值。
答案 1 :(得分:0)
date()会在您发布此日期时返回当前日期(4/30/17)。因此,如果它是>比今天的日期更长并且不为空。 5/1/17是> 4/30/17并且不为null,因此它返回它。