Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy对象中的默认unix时间值_Python_Mysql_Time_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy对象中的默认unix时间值

Python SQLAlchemy对象中的默认unix时间值,python,mysql,time,sqlalchemy,Python,Mysql,Time,Sqlalchemy,我试图存储默认情况下创建对象时的unix时间戳。但是,当对象存储在数据库中时,我总是得到相同的错误值。这是我的班级: 从时间导入时间 类通知(db.Model): id=db.Column(db.Integer,主键=True) name=db.Column(db.String(128),index=True) user\u id=db.Column(db.Integer,db.ForeignKey('user.id')) timestamp=db.Column(db.Float,index=T

我试图存储默认情况下创建对象时的unix时间戳。但是,当对象存储在数据库中时,我总是得到相同的错误值。这是我的班级:

从时间导入时间
类通知(db.Model):
id=db.Column(db.Integer,主键=True)
name=db.Column(db.String(128),index=True)
user\u id=db.Column(db.Integer,db.ForeignKey('user.id'))
timestamp=db.Column(db.Float,index=True,default=time)
payload_json=db.Column(db.Text)
def get_数据(自身):
返回json.loads(str(self.payload_json))
如果我启动一个烧瓶外壳:

>>>from time import time
>>>time()
1571733064.7366862
>>>n=Notification(name='dummy')
db.session.add(n)
>>> db.session.commit()
>>> n.timestamp
1571730000.0
对这里发生的事情有什么见解吗??!!!我签入了一个Mysql shell,并选择UNIX\u TIMESTAMP()给出正确的值


提前感谢

如果SQLAlchemy的泛型类型
Float
在MySQL中以单精度
Float
结束,那么它就不能以这样的精度存储这么大的值。使用Float而不是MySQL datetime类型的原因是什么?谢谢。我定期检查javscript中的函数中自上次通知以来的新通知。在某种程度上,由于使用了两种编程语言,使用float似乎比使用datetime对象更简单。我想我也可以用datetime对象来完成。这在原则上似乎是一件急进的事情,结果是一个复杂的问题。在Ilja的评论之后,我将数据类型更改为BigInteger,并将time()转换为整数毫秒数(int(time()*1000)。它可以工作。我将等待是否有更好的解决方案,如果没有,我将发布它。