Python + sqlalchemy:如何在数据库端处理timedelta?
我在用Python编程,想在数据库那边插入处理时间,像这样:
time = func.now()-datetime.timedelta(days=100)
或者
time = func.current_timestamp()-datetime.timedelta(days=100)
但不知怎么的,总是出问题,看到警告:
sqlalchemy\engine\default.py:330: Warning: Truncated incorrect DOUBLE value: '1970-01-04 00:00:00'
有没有办法解决这个问题呢?谢谢。
================================
我想更新表格'Purchase'里的一个时间戳列'date_buy',我不想在Python里用datetime.datetime.now()来获取更新时间,而是想在数据库里完成这个操作,也就是说,我更希望用func.now():
time = func.current_timestamp()-datetime.timedelta(days=100)
# time = datetime.datetime.now()-datetime.timedelta(days=100)
session.execute(update(Purchase).values(date_buy=time).where(Purchase.c.id == 11))
=================================
问题解决了。感谢Bryan和他的帖子:
http://groups.google.com/group/sqlalchemy/browse_thread/thread/a67d4f179e01b98a/ee688a0b8a999f52?hl=en&lnk=gst&q=date_add#ee688a0b8a999f521 个回答
2
这个警告是:
警告:截断了不正确的DOUBLE值:'1970-01-04 00:00:00'
这意味着你的数据被截断了。请检查一下你打算存储时间对象的字段类型。它的意思是你试图把一个日期时间值存储为DOUBLE类型。
如果这样还不能解决问题,那就给个代码例子,这样我们能更好地理解你想要做什么。