Python datetime.date.today() не форматируется внутри sqllite3
В моем запросе к базе данных, который выполняется с помощью модуля sqlite3
, я вставляю новую строку данных, которая включает поле даты.
Проблема заключается в том, что при получении сегодняшней даты с помощью datetime.date.today().strftime('%Y-%m-%d')
, которая выводит '2023-02-06'
(ожидаемый результат), внутри базы данных она меняется на '2015'
. Почему это происходит?
Это проект Django, поэтому именно здесь я создал модель для базы данных.
models.py
class User(models.Model):
...
date_joined = models.DateField('%Y-%m-%d')
...
database.py
def add_user(self, email, password):
date = datetime.date.today().strftime('%Y-%m-%d')
self.cursor.execute(f"""
INSERT INTO App_user ('username','email','password', 'email_preference', 'region', 'date_joined')
VALUES ('{username}', '{email}', '{password}', 'All', 'None', {date})
""")
self.con.commit()
Вы не должны иметь поле даты на стороне клиента, когда вы создаете пользователя. Это поле в Django автоматически сохраняется в базе данных при определении DateField и регистрации каждого пользователя. Вы также можете использовать следующий фрагмент кода для записи даты создания пользователя, а также даты, когда пользователь обновил свой профиль.
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)