擅长:python、mysql、java
<p>如果您试图以错误的格式插入时间戳,<code>sqlite3</code>将不会产生错误,除非您尝试将值选择回<em><code>datetime</code>object</em>。要验证输入的日期/时间字符串,<a href="https://stackoverflow.com/a/15464333/4279">convert it to ^{<cd3>} first</a>。<code>sqlite3</code>模块可以自动转换{<cd3>}:</p>
<pre><code>#!/usr/bin/env python3
import sqlite3
from datetime import datetime
db = sqlite3.connect(':memory:')
db.execute('CREATE TABLE dates (timestamp TIMESTAMP)')
db.executemany('INSERT INTO dates VALUES(?)',
[[datetime.utcnow()], ['2016-03-28 20:23:46.000000+0800']])
print(*db.execute('SELECT timestamp FROM dates'), sep='\n')
</code></pre>
<h3>输出</h3>
^{pr2}$
<p><code>TIMESTAMP</code>字段接受ISO8601格式的字符串<code>'YYYY-MM-DD HH:MM:SS.mmmmmm'</code>或{<cd3>}对象。在</p>
<p><a href="https://stackoverflow.com/q/1829872/4279">To return ^{<cd9>} back, you could use ^{<cd10>}</a>(如果需要时区支持;<a href="https://docs.python.org/3/library/sqlite3.html#converting-sqlite-values-to-custom-python-types" rel="nofollow noreferrer">define your own converter</a>,它返回时区感知的日期时间对象)。在</p>