Я использую Python и построил таблицу в sqlite. Я не знал, что в Python есть тип поля метки времени для sqlite, поэтому я сохранил его как текст.
Ниже приведен мой код и результат ... единственные даты, показанные в таблицах, относятся к 2019-06-18
, но запрос возвращает 2019-06-19
... не знаю, почему
import sqlite3
# Connecting to the database file
sqlite_file = 'insta.sqlite'
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
# Get all rows
c.execute("SELECT * FROM daily_counts")
count_row = c.fetchall()
for row in count_row:
print(row)
# Get Daily Count
c.execute('SELECT count FROM daily_counts where current_date = ? and client_id = ? and metric = ?',
('2019-06-18', 0, 'C'))
count_row = c.fetchall()
print(count_row)
# Get Daily Count
c.execute('SELECT count FROM daily_counts where current_date = ? and client_id = ? and metric = ?',
('2019-06-19', 0, 'C'))
count_row = c.fetchall()
print(count_row)
# Get Daily Count
c.execute('SELECT count FROM daily_counts where current_date = ? and client_id = ? and metric = ?',
('2019-06-20', 0, 'C'))
count_row = c.fetchall()
print(count_row)
Результаты: (обратите внимание, что, когда условие является 19-м, оно возвращает результаты для 18-го, а 18-е не возвращает результатов ..)
(0, u'2019-06-18', u'A', 2)
(0, u'2019-06-18', u'B', 6)
(1, u'2019-06-18', u'C', 180)
(1, u'2019-06-18', u'D', 258)
(1, u'2019-06-18', u'E', 111)
(0, u'2019-06-18', u'C', 180)
(1, u'2019-06-18', u'F', 3)
[]
[(180,)]
[]
Я предполагаю, что должен использовать тип поля timestamp вместо текста? Но я все равно ожидал бы, что это сработает