你和 Nagh 猜对了:这是一个 Python 的东西,但它只是一个显示的东西。您不会失去时间戳精度。
cx_Oracle Python 库将 Oracle 日期类型(Date、Timestamp..)转换为 Python 的日期类型之一datetime。
当一个datetime
对象被打印为一个字符串时,(即,它的__str__()
方法被调用),它以 ISO 8601 格式打印出来,使用datetime.isoformat()
- 这个方法是决定在它们为 0 时不打印毫秒的地方(实际上,adatetime
有没有毫秒字段,它有微秒,但相同点)。
然而,这只是对象的字符串表示datetime
。所有的时间信息仍然在那里供您使用。
如果你想一直显示毫秒,你必须明确;尝试使用strftime()
:
from datetime import datetime
now = datetime.now()
print now
# >>> 2013-11-28 15:34:47.223000
now = now.replace(microsecond=0) # Remove milliseconds
print now
# >>> 2013-11-28 15:34:47
print now.strftime('%Y-%m-%d %H:%M:%S.%f')
# >>> 2013-11-28 15:34:47.000000