РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
466 of 711 menu

Функция func.current_time

Функция func.current_time создает SQL-выражение, которое возвращает текущее время на стороне сервера базы данных. Функция не принимает обязательных параметров и может быть использована в запросах <+sql+>SELECT<->sql->, а также при вставке и обновлении данных. Значение вычисляется СУБД в момент выполнения запроса, а не в момент формирования выражения в Python.

Функция доступна через объект func, который предоставляет доступ к одноименным SQL-функциям. В зависимости от диалекта выражение может транслироваться в <+sql+>CURRENT_TIME<->sql-> или <+sql+>CURRENT_TIME()<->sql->.

Синтаксис

func.current_time()

Пример

Давайте получим текущее время базы данных с помощью простого запроса:

from sqlalchemy import create_engine, select, func engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: res = conn.execute(select(func.current_time())).scalar() print(res)

Результат выполнения кода:

"14:35:02"

Пример

Давайте присвоим столбцу выражения псевдоним с помощью метода label и выведем результат:

from sqlalchemy import create_engine, select, func engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: stmt = select(func.current_time().label('now_time')) res = conn.execute(stmt).one() print(res.now_time)

Результат выполнения кода:

"14:35:02"

Пример

Давайте используем функцию при выборке из таблицы articles. Сначала создадим таблицу и заполним ее данными:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, insert, select, func engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('status', String), ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(insert(articles), [ {'title': 'article', 'status': 'draft'}, ]) stmt = select(articles.c.title, func.current_time()) res = conn.execute(stmt).all() print(res)

Результат выполнения кода:

[('article', '14:35:02')]

Итоговый SQL запрос:

SELECT articles.title, CURRENT_TIME FROM articles

Пример

Давайте используем функцию при вставке новой строки в таблицу, чтобы сохранить время создания записи:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Time, insert, select, func engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('created_at', Time), ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(insert(articles).values( title='article', created_at=func.current_time(), )) res = conn.execute(select(articles)).all() print(res)

Результат выполнения кода:

[(1, 'article', '14:35:02')]

Итоговый SQL запрос:

INSERT INTO articles (title, created_at) VALUES ('article', CURRENT_TIME)

Смотрите также

  • функцию current_timestamp,
    которая возвращает текущую дату и время
  • функцию current_date,
    которая возвращает текущую дату
  • функцию now,
    которая возвращает текущие дату и время
  • объект func,
    который предоставляет доступ к SQL-функциям
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить