擅长:python、mysql、java
<p>问题是<code>SomeType.date</code>列不是简单的<code>date</code>,而是<code>datetime</code>列,因此它还包含一个时间组件。</p>
<p>此类型不匹配是问题的原因。如果是这种情况,则应遵循以下原则:</p>
<p><code>session.query(SomeType).filter(func.date(SomeType.date) >= fromDate, func.date(SomeType.date) <= toDate).all()</code></p>
<p>这里我们基本上是使用MySql的<a href="http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_date" rel="nofollow">^{<cd8>}</a>函数<code>cast</code><code>datetime</code>到<code>date</code>。</p>
<p>但是,我可能更喜欢使用<code>date(time)</code>数据类型而不是字符串。幸运的是,大多数数据库都隐式地允许解析符合ISO标准的日期字符串表示形式。</em></p>