Python's Archiver

為方便港臺同胞閱覽,Python中國特別推出簡繁體內容轉換功能

zkfarmer 发表于 2008-10-25 23:32

13.13.4.4 缺省的适配器和转换器

datetime模块中有date和datetime类型缺省的适配器。它们被作为ISO日期/ISO时间戳传递给SQLite。

缺省的转换datetime.date以”date”的名义,datetime.datetime以”timestamp”的名义标示。

这样,大多数情况中,你可以从Python中没有任何另外的无聊使用date/timestamps。适配器的格式也兼容试验性的SQLite date/time函数。

下面例子证明这个。
import sqlite3
import datetime

con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
cur = con.cursor()
cur.execute("create table test(d date, ts timestamp)")

today = datetime.date.today()
now = datetime.datetime.now()

cur.execute("insert into test(d, ts) values (?, ?)", (today, now))
cur.execute("select d, ts from test")
row = cur.fetchone()
print today, "=>", row[0], type(row[0])
print now, "=>", row[1], type(row[1])

cur.execute('select current_date as "d [date]", current_timestamp as "ts [timestamp]"')
row = cur.fetchone()
print "current_date", row[0], type(row[0])
print "current_timestamp", row[1], type(row[1])

下载文本(原文件名:sqlite3/pysqlite_datetime.py)。

出处[url=http://www.okpython.com]PYTHON中国[/url],关于翻译的任何事情请EMAIL给我[email=zkfarmer@gmail.com]zkfarmer[/email],更多文档在[url=http://www.zkfarmer.org]我的站点[/url],[color=Red]请参阅官方英文文档[/color]。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.