PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak napisać zapytanie Django, które wykonuje matematykę dat, gdy jest wykonywane jako PostGres SQL?

Możesz dodać funkcje bazy danych do Django , w tym celu możesz dodać funkcję dla instrukcji INTERVAL w postgresie

class IntervalSeconds(Func):

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

Następnie możesz użyć tej funkcji w swoich zapytaniach, aby dodać sekundy do daty i godziny

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

Wyjście IntervalSeconds funkcja to 1-sekundowy interwał Postgresa pomnożone przez przekazane do niego pole. Można to dodawać i odejmować od znacznika czasu. Możesz zrobić ogólny Interval funkcja, która nie zajmuje tylko sekund, jest trochę bardziej złożona

ExpressionWrapper jest wymagane do konwersji wyniku na obiekt typu datetime




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekonwertować bazę danych postgres na sqlite

  2. optymalizacja wydajności offsetu/limitu

  3. Postgresql obcina tabelę z ograniczeniem klucza obcego

  4. Zaktualizuj swoje hasło do PostgreSQL w systemie Linux

  5. Konwersja liczby całkowitej na Enum w PostgreSQL