@TeGusta

Как реализовать добавление даты и времени в SQLite3 через бота на aiogram?

нужно реализовать ввод даты и времени через машинное состояние в боте на aiogram, чтобы данные(дата и время) заносились в таблицу и можно было эти данные потом выводить. И чтобы дата и время не повторялись в бд
class FSMRegisters(StatesGroup):
    fname = State()
    date = State()
    time = State()

@dp.message_handler(text='Запись к мастеру', state=None)
async def cm_registers(message: types.Message):
    await db.cmd_start_db(message.from_user.id)
    await FSMRegisters.fname.set()
    await message.answer('Ввведите ваше имя')

@dp.message_handler(state=FSMRegisters.fname)
async def load_phone(message: types.Message, state: FSMContext):
        async with state.proxy() as data:
            data['fname'] = message.text
            await FSMRegisters.next()
            await message.answer('Введите удобную для вас дату')

@dp.message_handler(state=FSMRegisters.date)
async def load_date(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['date'] = message.text
        await FSMRegisters.next()
        await message.answer('Введите удобное для вас время')

@dp.message_handler(state=FSMRegisters.time)
async def load_time(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['time'] = message.text


Безусловно создал таблицу в БД для этого всего дела. И вот часть кода из БД:
async def cmd_add_users(state):
    async with state.proxy() as data:
        cur.execute("INSERT INTO users VALUES (?, ?, ?)", tuple(data.values()))
        db.commit()
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka
Токсичный шарпист
Дату и время в sqlite можно сохранить двумя вариантами:
Как строку - удобно и ничего не нужно будет выдумывать.
Как число (Unix time) - компактно и можно будет нормально фильтроваться, но нужно будет конвертировать.


И чтобы дата и время не повторялись в бд

Уникальный индекс.

Телеграм и python к вопросу отношения не имеют.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы