Возврат более одного столбца между двумя критериями - PullRequest
0 голосов
/ 31 октября 2019

У меня есть база данных SQLite, содержащая три столбца;EmpName, theTime и theDate. Я пытаюсь выполнить запрос, который будет возвращать строки с EmpName и theTime, которые соответствуют определенному диапазону дат. Моя цель - сложить все это время и дать общее время в конце недели. Однако, когда я запускаю свой код, он возвращает список 0.

Я пробовал запросы, такие как:

SELECT * FROM Swipes WHERE theDate>=:starting<=:endof", {'starting': fstartingDate, 'endof': formatted}

и

SELECT EmpName AND theTime FROM Swipes WHERE theDate >=? <=?, (fstartingdate, formatted,)

и

SELECT EmpName AND theTime FROM Swipes WHERE thedate BETWEEN ? AND ?", (fstartingDate, formatted)

и другие варианты этого подхода, но мне кажется, что я бегаю кругами. Это мой код:

def weekSummary(endofthatweek):
    formatted = dt.strptime(endofthatweek, '%Y-%m-%d')
    startingDate = formatted - td(days=7)
    fstartingDate = startingDate.date()
    con = sqlite3.connect(r'C:\Users\zstrickland.RANDSMACHINE\Documents\PymeClock\testTimeclock.db')
    cur = con.cursor()
    cur.execute("SELECT EmpName AND theTime FROM Swipes WHERE theDate>=:starting<=:endof", {'starting': fstartingDate, 'endof': formatted})
    tupes = cur.fetchall()
    con.close()
    detuped = [x[0] for x in tupes]
    print(detuped)

Я надеюсь получить список (вероятно, список кортежей ..) в следующем формате: [(EmpName, theTime), (EmpName, theTime), (EmpName,время), (EmpName, время)]. Любая помощь или предложения о том, как сделать этот расчет, будут полезны. Спасибо!

1 Ответ

1 голос
/ 31 октября 2019

Эти условия:

theDate>=:starting<=:endof

и:

theDate >=? <=?

не являются допустимыми условиями SQL. Вам нужно BETWEEN:

theDate BETWEEN :starting AND :endof

или:

theDate BETWEEN ? AND ?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...