使用带有mysql unix时间戳的sqlalchemy定义表

使用带有mysql unix时间戳的sqlalchemy定义表,第1张

使用带有mysql unix时间戳的sqlalchemy定义表

我认为您显示的类型装饰器有几个问题。

  1. impl
    应该
    sqlalchemy.types.Integer
    代替
    DateTime
  2. 装饰器应允许可空列。

这就是我的想法:

import datetime, timefrom sqlalchemy.types import TypeDecorator, DateTime, Integerclass IntegerDateTime(TypeDecorator):    """a type that decorates DateTime, converts to unix time on    the way in and to datetime.datetime objects on the way out."""    impl = Integer # In schema, you want these datetimes to        # be stored as integers.    def process_bind_param(self, value, _):        """Assumes a datetime.datetime"""        if value is None: return None # support nullability        elif isinstance(value, datetime.datetime): return int(time.mktime(value.timetuple()))        raise ValueError("Can operate only on datetime values. "   "Offending value type: {0}".format(type(value).__name__))    def process_result_value(self, value, _):        if value is not None: # support nullability return datetime.datetime.fromtimestamp(float(value))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5661894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存