python timestamp奇怪的价值

时间:2017-09-29 20:14:57

标签: python sqlite unix-timestamp

在下面的脚本中,我使用几个通用值填充SQLite数据库:

import sqlite3
import time
import datetime
import random

conn = sqlite3.connect('tutorial.db')
curs = conn.cursor()

def dynamic_data_entry():

    unix = int(time.time())
    date = str(datetime.datetime.fromtimestamp(unix).strftime('%Y-%m-%d %H:%M:%S'))
    keyword = 'Python'
    value = random.randrange(0, 10)

    curs.execute("INSERT INTO stuffToPlot (unix, datestamp, keyword, value) VALUES (?, ?, ?, ?)", (unix, date, keyword, value))

    conn.commit()

for i in range(10):
    dynamic_data_entry()
    time.sleep(1)

curs.close
conn.close()

数据库中的一个字段unix等于int(time.time()),因此它是当前时间戳。但是,当我打开数据库时,我看到了这一点:

enter image description here

unix的第一个值比它应该少几个数量级。难道我做错了什么?或者它只是一个错误?

1 个答案:

答案 0 :(得分:1)

您是否尝试过多次运行?

重复跑的结果是什么?

它总是第一个比几乎所有其他值低几个数量的值吗?

查看您的表输出,看起来第一个结果来自2016年,其中所有后续结果都来自2017年。这是否可能与time.time()调用返回的数据远低于预期数量有关?

您是否可能没有以空数据库表开头?