Korak-997 Ответов: 2

Ошибка значения в strptime в Python ! ! !


у меня есть функция, которая получает информацию из поля ввода в Tkinter на python, а затем использует эту информацию для отображения данных на экране ... чтобы получить строку ( которая является датой), я использовал модуль datetime и strptime, но я получаю valueerror, который я вообще не понимаю, потому что все кажется прекрасным !!! я был бы очень признателен за ваши предложения, спасибо..

PS: код и ошибку, которую я получу, я напишу ниже !



cursor.execute("SELECT sum(fnishing - starting) FROM working_time_app_table WHERE date BETWEEN ? and ?",((datetime.strptime(d_u_entry, "%Y-%m-%d")), (datetime.strptime(d_f_entry, "%Y-%m-%d")))) 


ошибка, которую я получаю, такова :

Файл "C:\Users\Admin\AppData\Local\Programs\Python\Python38-32\lib\_strptime.py", строка 349, in _strptime
raise ValueError("временные данные %r не соответствуют формату %r" %
ValueError: time data " не соответствует формату '%y-%m-%d'

Что я уже пробовал:

я написал этот код после того, как прочитал этот документ, который, как мне кажется, является правильным, и я использовал его также правильно !!!

7.1. datetime — основные типы дат и времени — документация Python v3.2.6[^]

в кнопке записи есть таблица, которая описывает все %y - %m - %d, которые я использовал в своем коде

2 Ответов

Рейтинг:
2

Korak-997

Thanks for all of your suggestions specially the ones who suggested debugging. I did debug was kind of a huge stress, but in the end finally i found my mistake !!!! 

The error does not have to do with any kind of misspelling or Data type. The problem was wrongly locating the d_u_entry variable and d_f_entry variable. here i will post again the correct form of the code . Again thanks for all of you and your time that you invested in helping me. Also sorry for bothering you all !!!!

 <pre lang="Python">

  cursor.execute("SELECT total(finishing - starting) FROM working_time_app_table WHERE date BETWEEN ? and ?",
                   (d_f_entry, d_u_entry))


The problem was i was Entering the ending Date before the beginning !!!


Рейтинг:
14

phil.o

Корак-997 писал:
временные данные '' не соответствует формату '%y-%m-%d'
Любой d_u_entry или d_f_entry содержит не строку datetime, как вы ожидаете, а скорее пустую строку.
Вы должны исследовать это путем отладки вашего приложения: поместите точку останова в начале исследуемой функции, затем выполните ее построчно и внимательно следите за значениями ваших переменных. Мы не можем сделать это для вас.

Edit: ссылки, касающиеся отладки python
26.2. ПДБ — отладчик питона документации по языку Python 2.7.17 [^]
Отладка Python С Pdb – Real Python[^]


Korak-997

Спасибо за ваше предложение, я бы рассмотрел его и попробовал. Но есть ли определенный способ отладки в этих случаях, или я должен просто попытаться выяснить свою проблему, читая и используя другие коды ??

phil.o

Пожалуйста. Я не думаю, что вы найдете что-нибудь в других кодах; ваша проблема, похоже, связана со значением datetime, которое не было установлено должным образом. Исследование причины неправильного назначения-это единственный путь; таким образом, отладка. Кроме того, отладка-это удовольствие, и вы получите гораздо более глубокое понимание того, что происходит; в долгосрочной перспективе практика отладки научит вас писать более безопасный код.

Korak-997

ну, это звучит круто, ха-ха-ха :) я буду заботиться об этом еще раз спасибо.