PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да напиша Django заявка, която да изчислява дати, когато се изпълнява като PostGres SQL?

Можете да добавите функции за база данни към Django , за това можете да добавите функция за инструкцията INTERVAL в postgres

class IntervalSeconds(Func):

    function = 'INTERVAL'
    template = "(%(expressions)s * %(function)s '1 seconds')"

След това можете да използвате тази функция във вашите заявки, за да добавите секунди към дата и час

YourModel.objects.annotate(
    attr=ExpressionWrapper(
        F("article__created_on") + IntervalSeconds(F("article__websitet__avg_time_in_seconds_to_reach_ep")),
        output_field=models.DateTimeField()
    ),
)

Резултатът от IntervalSeconds функцията е 1 секунда интервал на Postgres умножено по полето, предадено му. Това може да се добавя и изважда от клеймо за време. Можете да направите общ Interval функция, която не отнема само секунди, това е малко по-сложно

ExpressionWrapper се изисква за преобразуване на резултата в обект за дата и час




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете произволен низ, който е подходящ за идентификатор на сесия в PostgreSQL?

  2. PostgreSQL:SQL скрипт за получаване на списък на всички таблици, които имат определена колона като външен ключ

  3. Възстановете изтритите записи в PostgreSQL

  4. Postgresql регулярен израз за съвпадение с главни букви, съобразен с Unicode

  5. Postgres намира конфигурационни файлове в linux