Python + sqlalchemy: как обработать таймделту на стороне базы данных? - PullRequest
2 голосов
/ 07 февраля 2012

При написании кода на 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'

Есть ли способ сделать это прямо?спасибо.

======================================

Я хочу обновитьстолбец TIMESTAMP 'date_buy' в таблице 'Покупка', и d вместо использования datetime.datetime.now () для получения времени обновления в python, я хочу, чтобы это было сделано в базе данных, то есть я бы предпочел 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))

=======================================

решена.спасибо Брайану и его посту: http://groups.google.com/group/sqlalchemy/browse_thread/thread/a67d4f179e01b98a/ee688a0b8a999f52?hl=en&lnk=gst&q=date_add#ee688a0b8a999f52

1 Ответ

1 голос
/ 08 февраля 2012

Предупреждение

Warning: Truncated incorrect DOUBLE value: '1970-01-04 00:00:00'

Означает усечение ваших данных. Пожалуйста, проверьте тип поля, в котором вы собираетесь хранить объект времени. Это говорит о том, что вы пытаетесь сохранить значение DOUBLE со значением datetime.

Если это не решит проблему, просто приведите пример кода, чтобы мы поняли, что вы собираетесь делать.

...