sql >> Databáze >  >> RDS >> PostgreSQL

Jak napíšu dotaz Django, který počítá datum, když je spuštěn jako PostGres SQL?

Do Djanga můžete přidat funkce databáze , za tímto účelem můžete přidat funkci pro výkaz INTERVAL v postgres

class IntervalSeconds(Func):

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

Tuto funkci pak můžete použít ve svých dotazech k přidání sekund k datu a času

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

Výstup parametru IntervalSeconds funkce je 1 sekunda Postgres interval vynásobené polem, které mu bylo předáno. To lze přidat a odečíst od časového razítka. Můžete vytvořit obecný Interval funkce, která nezabere jen sekundy, je o něco složitější

ExpressionWrapper je vyžadován k převodu výsledku na objekt datetime




  1. Referenční kurzor se v XMLType.createxml ztratí

  2. MYSQL jak odemknout tabulku, pokud jsem použil příkaz LOCK tabulka název_tabulky WRITE;

  3. Schéma databáze Wufoo – Jak byste jej navrhli?

  4. Má Oracle koncept filtrovaného indexu?