擅长:python、mysql、java
<p>问题与错误状态完全一样。<code>program_startDate</code>和<code>program_endDate</code>是字符串,您试图从中减去日期时间,这是python无法做到的。</p>
<p>这些值是否作为日期时间存储在数据库中?</p>
<p>如果是,请使用:</p>
<pre><code> program_startDate = row[2]
program_endDate = row[3]
</code></pre>
<p>而不是把它们转换成字符串。数据库引擎将把它们作为日期时间提供给您,错误将得到解决。</p>
<p>如果它们作为字符串存储在数据库中,<a href="https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior" rel="nofollow">use datetime.strptime</a>根据它们存储的格式将它们转换为日期时间。</p>
<p>编辑:</p>
<p>OP将日期存储在数据库中,例如20140831170500。要解决此问题,请使用:</p>
<pre><code>from datetime import datetime
...
...
for row in programs:
program = row[1].encode('ascii'), str(row[2]), str(row[3])
program_startDate = datetime.strptime(str(row[2]), '%Y%m%d%H%M%S')
program_endDate = datetime.strptime(str(row[3]), '%Y%m%d%H%M%S')
programList.append(program)
</code></pre>