mas*_*lak 5 python postgresql timestamp sqlalchemy python-3.x
我正在尝试使用 SQLAlchemy 设置时间戳列的值,但遇到以下错误:
column "timestamp" is of type timestamp without time zone but expression is of type numeric
Run Code Online (Sandbox Code Playgroud)
我的表如下所示:
class SomeTable(db.Model):
timestamp = Column(TIMESTAMP)
Run Code Online (Sandbox Code Playgroud)
插入尝试如下所示:
SomeTable(timestamp=time.time())
Run Code Online (Sandbox Code Playgroud)
当我使用 datetime.now() 而不是 time.time() 时,记录将插入到表中,但是当我从数据库中选择它时,它具有以下格式:
2019-04-02 11:44:24.801046
Run Code Online (Sandbox Code Playgroud)
所以看起来 TIMESTAMP 字段不存储时间戳格式。
这是常规的 postgres 行为吗?或者我错过了什么?
我认为这很好,因为下一个是正确的:
Column('timestamp', TIMESTAMP(timezone=False), nullable=False, default=datetime.now())
Run Code Online (Sandbox Code Playgroud)
所以默认情况下你有datetime.now()那里,它是关于演示的
datetime.now()会给你'2019-04-02 14:21:33.715782
datetime.now().isoformat()会给你'2019-04-02T14:31:09.071147'
检查一下:http://www.sqlfiddle.com/#!15/d0c6a/ 8
如果您取消注释第三个插入,您将得到与您的完全相同的异常