2017-09-29 6 views
0

, 나는 몇 가지 일반적인 값으로 SQLite는, 데이타베이스를 채울 : 그것은 현재 타임 스탬프 그래서 DB의 필드파이썬 타임 스탬프 이상한 값 다음 스크립트에서

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() 

하나는, int(time.time()) 같다 unix이다. 제가 DB를 열 때 그러나, 나는이를 참조하십시오

enter image description here

unix의 첫 번째 값은 그것이 있어야보다 몇 배 이하입니다. 내가 뭔가 잘못하고 있는거야? 아니면 그냥 버그 야?

+2

날짜 이전에 삽입 된 행으로 표시됩니다. 또한 테이블에는 10 개의 항목 만 삽입하는 루프와 달리 11 개의 항목이 있습니다 (모든 행이 스크린 샷에 표시되어 있다고 가정합니다). –

답변

1

여러 번 실행 해 보셨습니까?

반복 실행의 결과는 무엇입니까?

항상 다른 값보다 몇 배 낮은 첫 번째 값입니까?

테이블 결과를 보면 첫 번째 결과는 2016에서 나온 것으로 보이며 그 결과는 모두 2017에서 나온 것입니다. 이것이 가능한 이유는 time.time() 호출이 예상보다 훨씬 낮은 숫자를 반환 한 것과 관련이 있습니다 ?

빈 DB 테이블로 시작하지 않았을 가능성이 있습니까?

+0

예, DB를 삭제하고 다시 생성 한 후에는 모든 값이 정상입니다 ... 원본 오류가 설명 할 수없는 마법처럼 보입니다. :) – t411tocreate