{"title":"Database Functions","version":"6.0","locale":"pt-br","docname":"ref/models/database-functions","url":"/pt-br/6.0/ref/models/database-functions/","canonical":"https://djangodocs.dev/pt-br/6.0/ref/models/database-functions/","summary":"The classes documented below provide a way for users to use functions provided by the underlying database as annotations, aggregations, or filters in Django.","html":"<span id=\"database-functions\"></span><h1>Database Functions<a class=\"heading-anchor\" href=\"#module-django.db.models.functions\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>The classes documented below provide a way for users to use functions provided\nby the underlying database as annotations, aggregations, or filters in Django.\nFunctions are also <a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/expressions/\"><span class=\"doc\">expressions</span></a>, so they can be\nused and combined with other expressions like <a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/querysets/#aggregation-functions\"><span class=\"std std-ref\">aggregate functions</span></a>. See the <a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/expressions/#django.db.models.Func\" title=\"django.db.models.Func\"><code class=\"xref py py-class docutils literal notranslate\">Func</code></a> documentation\nfor security considerations.</p>\n<p>We’ll be using the following model in examples of each function:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span> <span class=\"nc\">Author</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    age <span class=\"o\">=</span> models<span class=\"o\">.</span>PositiveIntegerField<span class=\"p\">(</span>null<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    alias <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">,</span> null<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    goes_by <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">,</span> null<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>We don’t usually recommend allowing <code class=\"docutils literal notranslate\">null=True</code> for <code class=\"docutils literal notranslate\">CharField</code> since this\nallows the field to have two “empty values”, but it’s important for the\n<code class=\"docutils literal notranslate\">Coalesce</code> example below.</p>\n<section id=\"comparison-and-conversion-functions\">\n<span id=\"comparison-functions\"></span><h2>Comparison and conversion functions<a class=\"heading-anchor\" href=\"#comparison-and-conversion-functions\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"cast\">\n<h3><code class=\"docutils literal notranslate\">Cast</code><a class=\"heading-anchor\" href=\"#cast\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Cast\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Cast</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Cast\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Forces the result type of <code class=\"docutils literal notranslate\">expression</code> to be the one from <code class=\"docutils literal notranslate\">output_field</code>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Cast\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>age<span class=\"o\">=</span><span class=\"mi\">25</span><span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    age_as_float<span class=\"o\">=</span>Cast<span class=\"p\">(</span><span class=\"s2\">&quot;age&quot;</span><span class=\"p\">,</span> output_field<span class=\"o\">=</span>FloatField<span class=\"p\">()),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>age_as_float<span class=\"p\">)</span>\n<span class=\"go\">25.0</span>\n</code></pre></div>\n</section>\n<section id=\"coalesce\">\n<h3><code class=\"docutils literal notranslate\">Coalesce</code><a class=\"heading-anchor\" href=\"#coalesce\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Coalesce\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Coalesce</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Coalesce\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a list of at least two field names or expressions and returns the\nfirst non-null value (note that an empty string is not considered a null\nvalue). Each argument must be of a similar type, so mixing text and numbers\nwill result in a database error.</p>\n<p>Usage examples:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get a screen name from least to most public</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> Sum\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Coalesce\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">,</span> goes_by<span class=\"o\">=</span><span class=\"s2\">&quot;Maggie&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>screen_name<span class=\"o\">=</span>Coalesce<span class=\"p\">(</span><span class=\"s2\">&quot;alias&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;goes_by&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;name&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>screen_name<span class=\"p\">)</span>\n<span class=\"go\">Maggie</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Prevent an aggregate Sum() from returning None</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># The aggregate default argument uses Coalesce() under the hood.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>aggregated <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>aggregate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    combined_age<span class=\"o\">=</span>Sum<span class=\"p\">(</span><span class=\"s2\">&quot;age&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    combined_age_default<span class=\"o\">=</span>Sum<span class=\"p\">(</span><span class=\"s2\">&quot;age&quot;</span><span class=\"p\">,</span> default<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    combined_age_coalesce<span class=\"o\">=</span>Coalesce<span class=\"p\">(</span>Sum<span class=\"p\">(</span><span class=\"s2\">&quot;age&quot;</span><span class=\"p\">),</span> <span class=\"mi\">0</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>aggregated<span class=\"p\">[</span><span class=\"s2\">&quot;combined_age&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">None</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>aggregated<span class=\"p\">[</span><span class=\"s2\">&quot;combined_age_default&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">0</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>aggregated<span class=\"p\">[</span><span class=\"s2\">&quot;combined_age_coalesce&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">0</span>\n</code></pre></div>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Aviso</p>\n<p>A Python value passed to <code class=\"docutils literal notranslate\">Coalesce</code> on MySQL may be converted to an\nincorrect type unless explicitly cast to the correct database type:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> DateTimeField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Cast<span class=\"p\">,</span> Coalesce\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.utils</span> <span class=\"kn\">import</span> timezone\n<span class=\"gp\">&gt;&gt;&gt; </span>now <span class=\"o\">=</span> timezone<span class=\"o\">.</span>now<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Coalesce<span class=\"p\">(</span><span class=\"s2\">&quot;updated&quot;</span><span class=\"p\">,</span> Cast<span class=\"p\">(</span>now<span class=\"p\">,</span> DateTimeField<span class=\"p\">()))</span>\n</code></pre></div>\n</aside>\n</section>\n<section id=\"collate\">\n<h3><code class=\"docutils literal notranslate\">Collate</code><a class=\"heading-anchor\" href=\"#collate\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Collate\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Collate</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">collation</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Collate\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Takes an expression and a collation name to query against.</p>\n<p>For example, to filter case-insensitively in SQLite:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>name<span class=\"o\">=</span>Collate<span class=\"p\">(</span>Value<span class=\"p\">(</span><span class=\"s2\">&quot;john&quot;</span><span class=\"p\">),</span> <span class=\"s2\">&quot;nocase&quot;</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Author: John&gt;, &lt;Author: john&gt;]&gt;</span>\n</code></pre></div>\n<p>It can also be used when ordering, for example with PostgreSQL:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>order_by<span class=\"p\">(</span>Collate<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;et-x-icu&quot;</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Author: Ursula&gt;, &lt;Author: Veronika&gt;, &lt;Author: Ülle&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"greatest\">\n<h3><code class=\"docutils literal notranslate\">Greatest</code><a class=\"heading-anchor\" href=\"#greatest\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Greatest\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Greatest</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Greatest\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a list of at least two field names or expressions and returns the\ngreatest value. Each argument must be of a similar type, so mixing text and\nnumbers will result in a database error.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span> <span class=\"nc\">Blog</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    body <span class=\"o\">=</span> models<span class=\"o\">.</span>TextField<span class=\"p\">()</span>\n    modified <span class=\"o\">=</span> models<span class=\"o\">.</span>DateTimeField<span class=\"p\">(</span>auto_now<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Comment</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    body <span class=\"o\">=</span> models<span class=\"o\">.</span>TextField<span class=\"p\">()</span>\n    modified <span class=\"o\">=</span> models<span class=\"o\">.</span>DateTimeField<span class=\"p\">(</span>auto_now<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    blog <span class=\"o\">=</span> models<span class=\"o\">.</span>ForeignKey<span class=\"p\">(</span>Blog<span class=\"p\">,</span> on_delete<span class=\"o\">=</span>models<span class=\"o\">.</span>CASCADE<span class=\"p\">)</span>\n</code></pre></div>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Greatest\n<span class=\"gp\">&gt;&gt;&gt; </span>blog <span class=\"o\">=</span> Blog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>body<span class=\"o\">=</span><span class=\"s2\">&quot;Greatest is the best.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>comment <span class=\"o\">=</span> Comment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>body<span class=\"o\">=</span><span class=\"s2\">&quot;No, Least is better.&quot;</span><span class=\"p\">,</span> blog<span class=\"o\">=</span>blog<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>comments <span class=\"o\">=</span> Comment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>last_updated<span class=\"o\">=</span>Greatest<span class=\"p\">(</span><span class=\"s2\">&quot;modified&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;blog__modified&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>annotated_comment <span class=\"o\">=</span> comments<span class=\"o\">.</span>get<span class=\"p\">()</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\">annotated_comment.last_updated</code> will be the most recent of <code class=\"docutils literal notranslate\">blog.modified</code>\nand <code class=\"docutils literal notranslate\">comment.modified</code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Aviso</p>\n<p>The behavior of <code class=\"docutils literal notranslate\">Greatest</code> when one or more expression may be <code class=\"docutils literal notranslate\">null</code>\nvaries between databases:</p>\n<ul class=\"simple\">\n<li><p>PostgreSQL: <code class=\"docutils literal notranslate\">Greatest</code> will return the largest non-null expression,\nor <code class=\"docutils literal notranslate\">null</code> if all expressions are <code class=\"docutils literal notranslate\">null</code>.</p></li>\n<li><p>SQLite, Oracle, and MySQL: If any expression is <code class=\"docutils literal notranslate\">null</code>, <code class=\"docutils literal notranslate\">Greatest</code>\nwill return <code class=\"docutils literal notranslate\">null</code>.</p></li>\n</ul>\n<p>The PostgreSQL behavior can be emulated using <code class=\"docutils literal notranslate\">Coalesce</code> if you know\na sensible minimum value to provide as a default.</p>\n</aside>\n</section>\n<section id=\"least\">\n<h3><code class=\"docutils literal notranslate\">Least</code><a class=\"heading-anchor\" href=\"#least\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Least\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Least</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Least\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a list of at least two field names or expressions and returns the least\nvalue. Each argument must be of a similar type, so mixing text and numbers will\nresult in a database error.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Aviso</p>\n<p>The behavior of <code class=\"docutils literal notranslate\">Least</code> when one or more expression may be <code class=\"docutils literal notranslate\">null</code>\nvaries between databases:</p>\n<ul class=\"simple\">\n<li><p>PostgreSQL: <code class=\"docutils literal notranslate\">Least</code> will return the smallest non-null expression,\nor <code class=\"docutils literal notranslate\">null</code> if all expressions are <code class=\"docutils literal notranslate\">null</code>.</p></li>\n<li><p>SQLite, Oracle, and MySQL: If any expression is <code class=\"docutils literal notranslate\">null</code>, <code class=\"docutils literal notranslate\">Least</code>\nwill return <code class=\"docutils literal notranslate\">null</code>.</p></li>\n</ul>\n<p>The PostgreSQL behavior can be emulated using <code class=\"docutils literal notranslate\">Coalesce</code> if you know\na sensible maximum value to provide as a default.</p>\n</aside>\n</section>\n<section id=\"nullif\">\n<h3><code class=\"docutils literal notranslate\">NullIf</code><a class=\"heading-anchor\" href=\"#nullif\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.NullIf\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">NullIf</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression1</em>, <em class=\"sig-param\">expression2</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.NullIf\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts two expressions and returns <code class=\"docutils literal notranslate\">None</code> if they are equal, otherwise\nreturns <code class=\"docutils literal notranslate\">expression1</code>.</p>\n<aside class=\"admonition-caveats-on-oracle admonition\" role=\"note\">\n<p class=\"admonition-title\">Caveats on Oracle</p>\n<p>Due to an <a class=\"reference internal\" href=\"/pt-br/6.0/ref/databases/#oracle-null-empty-strings\"><span class=\"std std-ref\">Oracle convention</span></a>, this\nfunction returns the empty string instead of <code class=\"docutils literal notranslate\">None</code> when the expressions\nare of type <a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/fields/#django.db.models.CharField\" title=\"django.db.models.CharField\"><code class=\"xref py py-class docutils literal notranslate\">CharField</code></a>.</p>\n<p>Passing <code class=\"docutils literal notranslate\">Value(None)</code> to <code class=\"docutils literal notranslate\">expression1</code> is prohibited on Oracle since\nOracle doesn’t accept <code class=\"docutils literal notranslate\">NULL</code> as the first argument.</p>\n</aside>\n</section>\n</section>\n<section id=\"date-functions\">\n<span id=\"id1\"></span><h2>Date functions<a class=\"heading-anchor\" href=\"#date-functions\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>We’ll be using the following model in examples of each function:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span> <span class=\"nc\">Experiment</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    start_datetime <span class=\"o\">=</span> models<span class=\"o\">.</span>DateTimeField<span class=\"p\">()</span>\n    start_date <span class=\"o\">=</span> models<span class=\"o\">.</span>DateField<span class=\"p\">(</span>null<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    start_time <span class=\"o\">=</span> models<span class=\"o\">.</span>TimeField<span class=\"p\">(</span>null<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    end_datetime <span class=\"o\">=</span> models<span class=\"o\">.</span>DateTimeField<span class=\"p\">(</span>null<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    end_date <span class=\"o\">=</span> models<span class=\"o\">.</span>DateField<span class=\"p\">(</span>null<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    end_time <span class=\"o\">=</span> models<span class=\"o\">.</span>TimeField<span class=\"p\">(</span>null<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<section id=\"extract\">\n<h3><code class=\"docutils literal notranslate\">Extract</code><a class=\"heading-anchor\" href=\"#extract\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Extract\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Extract</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">lookup_name<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Extract\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Extracts a component of a date as a number.</p>\n<p>Takes an <code class=\"docutils literal notranslate\">expression</code> representing a <code class=\"docutils literal notranslate\">DateField</code>, <code class=\"docutils literal notranslate\">DateTimeField</code>,\n<code class=\"docutils literal notranslate\">TimeField</code>, or <code class=\"docutils literal notranslate\">DurationField</code> and a <code class=\"docutils literal notranslate\">lookup_name</code>, and returns the part\nof the date referenced by <code class=\"docutils literal notranslate\">lookup_name</code> as an <code class=\"docutils literal notranslate\">IntegerField</code>.\nDjango usually uses the databases’ extract function, so you may use any\n<code class=\"docutils literal notranslate\">lookup_name</code> that your database supports. A <code class=\"docutils literal notranslate\">tzinfo</code> subclass, usually\nprovided by <a class=\"reference external\" href=\"https://docs.python.org/3/library/zoneinfo.html#module-zoneinfo\" title=\"(em Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\">zoneinfo</code></a>, can be passed to extract a value in a specific\ntimezone.</p>\n<p>Given the datetime <code class=\"docutils literal notranslate\">2015-06-15 23:30:01.000321+00:00</code>, the built-in\n<code class=\"docutils literal notranslate\">lookup_name</code>s return:</p>\n<ul class=\"simple\">\n<li><p>“year”: 2015</p></li>\n<li><p>“iso_year”: 2015</p></li>\n<li><p>“quarter”: 2</p></li>\n<li><p>“month”: 6</p></li>\n<li><p>“day”: 15</p></li>\n<li><p>“week”: 25</p></li>\n<li><p>“week_day”: 2</p></li>\n<li><p>“iso_week_day”: 1</p></li>\n<li><p>“hour”: 23</p></li>\n<li><p>“minute”: 30</p></li>\n<li><p>“second”: 1</p></li>\n</ul>\n<p>If a different timezone like <code class=\"docutils literal notranslate\">Australia/Melbourne</code> is active in Django, then\nthe datetime is converted to the timezone before the value is extracted. The\ntimezone offset for Melbourne in the example date above is +10:00. The values\nreturned when this timezone is active will be the same as above except for:</p>\n<ul class=\"simple\">\n<li><p>“day”: 16</p></li>\n<li><p>“week_day”: 3</p></li>\n<li><p>“iso_week_day”: 2</p></li>\n<li><p>“hour”: 9</p></li>\n</ul>\n<aside class=\"admonition-week-day-values admonition\" role=\"note\">\n<p class=\"admonition-title\"><code class=\"docutils literal notranslate\">week_day</code> values</p>\n<p>The <code class=\"docutils literal notranslate\">week_day</code> <code class=\"docutils literal notranslate\">lookup_type</code> is calculated differently from most\ndatabases and from Python’s standard functions. This function will return\n<code class=\"docutils literal notranslate\">1</code> for Sunday, <code class=\"docutils literal notranslate\">2</code> for Monday, through <code class=\"docutils literal notranslate\">7</code> for Saturday.</p>\n<p>The equivalent calculation in Python is:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">datetime</span> <span class=\"kn\">import</span> datetime\n<span class=\"gp\">&gt;&gt;&gt; </span>dt <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"p\">(</span>dt<span class=\"o\">.</span>isoweekday<span class=\"p\">()</span> <span class=\"o\">%</span> <span class=\"mi\">7</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"mi\">1</span>\n<span class=\"go\">2</span>\n</code></pre></div>\n</aside>\n<aside class=\"admonition-week-values admonition\" role=\"note\">\n<p class=\"admonition-title\"><code class=\"docutils literal notranslate\">week</code> values</p>\n<p>The <code class=\"docutils literal notranslate\">week</code> <code class=\"docutils literal notranslate\">lookup_type</code> is calculated based on <a class=\"reference external\" href=\"https://en.wikipedia.org/wiki/ISO-8601\">ISO-8601</a>, i.e.,\na week starts on a Monday. The first week of a year is the one that\ncontains the year’s first Thursday, i.e. the first week has the majority\n(four or more) of its days in the year. The value returned is in the range\n1 to 52 or 53.</p>\n</aside>\n<p>Each <code class=\"docutils literal notranslate\">lookup_name</code> above has a corresponding <code class=\"docutils literal notranslate\">Extract</code> subclass (listed\nbelow) that should typically be used instead of the more verbose equivalent,\ne.g. use <code class=\"docutils literal notranslate\">ExtractYear(...)</code> rather than <code class=\"docutils literal notranslate\">Extract(..., lookup_name='year')</code>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">datetime</span> <span class=\"kn\">import</span> datetime\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Extract\n<span class=\"gp\">&gt;&gt;&gt; </span>start <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>end <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">7</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    start_datetime<span class=\"o\">=</span>start<span class=\"p\">,</span> start_date<span class=\"o\">=</span>start<span class=\"o\">.</span>date<span class=\"p\">(),</span> end_datetime<span class=\"o\">=</span>end<span class=\"p\">,</span> end_date<span class=\"o\">=</span>end<span class=\"o\">.</span>date<span class=\"p\">()</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Add the experiment start year as a field in the QuerySet.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>experiment <span class=\"o\">=</span> Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    start_year<span class=\"o\">=</span>Extract<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;year&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>experiment<span class=\"o\">.</span>start_year\n<span class=\"go\">2015</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># How many experiments completed in the same year in which they started?</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>start_datetime__year<span class=\"o\">=</span>Extract<span class=\"p\">(</span><span class=\"s2\">&quot;end_datetime&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;year&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>count<span class=\"p\">()</span>\n<span class=\"go\">1</span>\n</code></pre></div>\n<section id=\"datefield-extracts\">\n<h4><code class=\"docutils literal notranslate\">DateField</code> extracts<a class=\"heading-anchor\" href=\"#datefield-extracts\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractYear\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractYear</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractYear\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'year'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractIsoYear\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractIsoYear</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractIsoYear\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the ISO-8601 week-numbering year.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'iso_year'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractMonth\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractMonth</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractMonth\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'month'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractDay\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractDay</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractDay\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'day'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractWeekDay\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractWeekDay</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractWeekDay\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'week_day'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractIsoWeekDay\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractIsoWeekDay</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractIsoWeekDay\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the ISO-8601 week day with day 1 being Monday and day 7 being\nSunday.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'iso_week_day'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractWeek\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractWeek</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractWeek\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'week'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractQuarter\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractQuarter</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractQuarter\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'quarter'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\">Extract('date_field', lookup_name)</code>. Each\nclass is also a <code class=\"docutils literal notranslate\">Transform</code> registered on <code class=\"docutils literal notranslate\">DateField</code> and <code class=\"docutils literal notranslate\">DateTimeField</code>\nas <code class=\"docutils literal notranslate\">__(lookup_name)</code>, e.g. <code class=\"docutils literal notranslate\">__year</code>.</p>\n<p>Since <code class=\"docutils literal notranslate\">DateField</code>s don’t have a time component, only <code class=\"docutils literal notranslate\">Extract</code> subclasses\nthat deal with date-parts can be used with <code class=\"docutils literal notranslate\">DateField</code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">datetime</span> <span class=\"kn\">import</span> UTC<span class=\"p\">,</span> datetime\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    ExtractDay<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractMonth<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractQuarter<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractWeek<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractIsoWeekDay<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractWeekDay<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractIsoYear<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractYear<span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>start_2015 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">23</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>end_2015 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">16</span><span class=\"p\">,</span> <span class=\"mi\">13</span><span class=\"p\">,</span> <span class=\"mi\">11</span><span class=\"p\">,</span> <span class=\"mi\">27</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    start_datetime<span class=\"o\">=</span>start_2015<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    start_date<span class=\"o\">=</span>start_2015<span class=\"o\">.</span>date<span class=\"p\">(),</span>\n<span class=\"gp\">... </span>    end_datetime<span class=\"o\">=</span>end_2015<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    end_date<span class=\"o\">=</span>end_2015<span class=\"o\">.</span>date<span class=\"p\">(),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    year<span class=\"o\">=</span>ExtractYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    isoyear<span class=\"o\">=</span>ExtractIsoYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    quarter<span class=\"o\">=</span>ExtractQuarter<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    month<span class=\"o\">=</span>ExtractMonth<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    week<span class=\"o\">=</span>ExtractWeek<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    day<span class=\"o\">=</span>ExtractDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    weekday<span class=\"o\">=</span>ExtractWeekDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    isoweekday<span class=\"o\">=</span>ExtractIsoWeekDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>values<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;year&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;isoyear&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;quarter&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;month&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;week&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;day&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;weekday&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;isoweekday&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    end_date__year<span class=\"o\">=</span>ExtractYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">{&#39;year&#39;: 2015, &#39;isoyear&#39;: 2015, &#39;quarter&#39;: 2, &#39;month&#39;: 6, &#39;week&#39;: 25,</span>\n<span class=\"go\"> &#39;day&#39;: 15, &#39;weekday&#39;: 2, &#39;isoweekday&#39;: 1}</span>\n</code></pre></div>\n</section>\n<section id=\"datetimefield-extracts\">\n<h4><code class=\"docutils literal notranslate\">DateTimeField</code> extracts<a class=\"heading-anchor\" href=\"#datetimefield-extracts\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>In addition to the following, all extracts for <code class=\"docutils literal notranslate\">DateField</code> listed above may\nalso be used on <code class=\"docutils literal notranslate\">DateTimeField</code>s .</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractHour\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractHour</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractHour\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'hour'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractMinute\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractMinute</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractMinute\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'minute'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ExtractSecond\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ExtractSecond</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractSecond\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'second'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\">Extract('datetime_field', lookup_name)</code>.\nEach class is also a <code class=\"docutils literal notranslate\">Transform</code> registered on <code class=\"docutils literal notranslate\">DateTimeField</code> as\n<code class=\"docutils literal notranslate\">__(lookup_name)</code>, e.g. <code class=\"docutils literal notranslate\">__minute</code>.</p>\n<p><code class=\"docutils literal notranslate\">DateTimeField</code> examples:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">datetime</span> <span class=\"kn\">import</span> UTC<span class=\"p\">,</span> datetime\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    ExtractDay<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractHour<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractMinute<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractMonth<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractQuarter<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractSecond<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractWeek<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractIsoWeekDay<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractWeekDay<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractIsoYear<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    ExtractYear<span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>start_2015 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">23</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>end_2015 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">16</span><span class=\"p\">,</span> <span class=\"mi\">13</span><span class=\"p\">,</span> <span class=\"mi\">11</span><span class=\"p\">,</span> <span class=\"mi\">27</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    start_datetime<span class=\"o\">=</span>start_2015<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    start_date<span class=\"o\">=</span>start_2015<span class=\"o\">.</span>date<span class=\"p\">(),</span>\n<span class=\"gp\">... </span>    end_datetime<span class=\"o\">=</span>end_2015<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    end_date<span class=\"o\">=</span>end_2015<span class=\"o\">.</span>date<span class=\"p\">(),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    year<span class=\"o\">=</span>ExtractYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    isoyear<span class=\"o\">=</span>ExtractIsoYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    quarter<span class=\"o\">=</span>ExtractQuarter<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    month<span class=\"o\">=</span>ExtractMonth<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    week<span class=\"o\">=</span>ExtractWeek<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    day<span class=\"o\">=</span>ExtractDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    weekday<span class=\"o\">=</span>ExtractWeekDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    isoweekday<span class=\"o\">=</span>ExtractIsoWeekDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    hour<span class=\"o\">=</span>ExtractHour<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    minute<span class=\"o\">=</span>ExtractMinute<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    second<span class=\"o\">=</span>ExtractSecond<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>values<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;year&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;isoyear&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;month&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;week&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;day&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;weekday&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;isoweekday&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;hour&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;minute&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;second&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    end_datetime__year<span class=\"o\">=</span>ExtractYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">{&#39;year&#39;: 2015, &#39;isoyear&#39;: 2015, &#39;quarter&#39;: 2, &#39;month&#39;: 6, &#39;week&#39;: 25,</span>\n<span class=\"go\"> &#39;day&#39;: 15, &#39;weekday&#39;: 2, &#39;isoweekday&#39;: 1, &#39;hour&#39;: 23, &#39;minute&#39;: 30,</span>\n<span class=\"go\"> &#39;second&#39;: 1}</span>\n</code></pre></div>\n<p>When <a class=\"reference internal\" href=\"/pt-br/6.0/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\">USE_TZ</code></a> is <code class=\"docutils literal notranslate\">True</code> then datetimes are stored in the database\nin UTC. If a different timezone is active in Django, the datetime is converted\nto that timezone before the value is extracted. The example below converts to\nthe Melbourne timezone (UTC +10:00), which changes the day, weekday, and hour\nvalues that are returned:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.utils</span> <span class=\"kn\">import</span> timezone\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span> <span class=\"nn\">zoneinfo</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>melb <span class=\"o\">=</span> zoneinfo<span class=\"o\">.</span>ZoneInfo<span class=\"p\">(</span><span class=\"s2\">&quot;Australia/Melbourne&quot;</span><span class=\"p\">)</span>  <span class=\"c1\"># UTC+10:00</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">with</span> timezone<span class=\"o\">.</span>override<span class=\"p\">(</span>melb<span class=\"p\">):</span>\n<span class=\"gp\">... </span>    Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>        day<span class=\"o\">=</span>ExtractDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        weekday<span class=\"o\">=</span>ExtractWeekDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        isoweekday<span class=\"o\">=</span>ExtractIsoWeekDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        hour<span class=\"o\">=</span>ExtractHour<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"p\">)</span><span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;day&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;weekday&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;isoweekday&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;hour&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">(</span>\n<span class=\"gp\">... </span>        end_datetime__year<span class=\"o\">=</span>ExtractYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">{&#39;day&#39;: 16, &#39;weekday&#39;: 3, &#39;isoweekday&#39;: 2, &#39;hour&#39;: 9}</span>\n</code></pre></div>\n<p>Explicitly passing the timezone to the <code class=\"docutils literal notranslate\">Extract</code> function behaves in the same\nway, and takes priority over an active timezone:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span> <span class=\"nn\">zoneinfo</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>melb <span class=\"o\">=</span> zoneinfo<span class=\"o\">.</span>ZoneInfo<span class=\"p\">(</span><span class=\"s2\">&quot;Australia/Melbourne&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    day<span class=\"o\">=</span>ExtractDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>melb<span class=\"p\">),</span>\n<span class=\"gp\">... </span>    weekday<span class=\"o\">=</span>ExtractWeekDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>melb<span class=\"p\">),</span>\n<span class=\"gp\">... </span>    isoweekday<span class=\"o\">=</span>ExtractIsoWeekDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>melb<span class=\"p\">),</span>\n<span class=\"gp\">... </span>    hour<span class=\"o\">=</span>ExtractHour<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>melb<span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;day&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;weekday&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;isoweekday&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;hour&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    end_datetime__year<span class=\"o\">=</span>ExtractYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">{&#39;day&#39;: 16, &#39;weekday&#39;: 3, &#39;isoweekday&#39;: 2, &#39;hour&#39;: 9}</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"now\">\n<h3><code class=\"docutils literal notranslate\">Now</code><a class=\"heading-anchor\" href=\"#now\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Now\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Now</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Now\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the database server’s current date and time when the query is executed,\ntypically using the SQL <code class=\"docutils literal notranslate\">CURRENT_TIMESTAMP</code>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Now\n<span class=\"gp\">&gt;&gt;&gt; </span>Article<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>published__lte<span class=\"o\">=</span>Now<span class=\"p\">())</span>\n<span class=\"go\">&lt;QuerySet [&lt;Article: How to Django&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"admonition-postgresql-considerations admonition\" role=\"note\">\n<p class=\"admonition-title\">PostgreSQL considerations</p>\n<p>On PostgreSQL, the SQL <code class=\"docutils literal notranslate\">CURRENT_TIMESTAMP</code> returns the time that the\ncurrent transaction started. Therefore for cross-database compatibility,\n<code class=\"docutils literal notranslate\">Now()</code> uses <code class=\"docutils literal notranslate\">STATEMENT_TIMESTAMP</code> instead. If you need the transaction\ntimestamp, use <a class=\"reference internal\" href=\"/pt-br/6.0/ref/contrib/postgres/functions/#django.contrib.postgres.functions.TransactionNow\" title=\"django.contrib.postgres.functions.TransactionNow\"><code class=\"xref py py-class docutils literal notranslate\">django.contrib.postgres.functions.TransactionNow</code></a>.</p>\n</aside>\n<aside class=\"admonition-oracle admonition\" role=\"note\">\n<p class=\"admonition-title\">Oracle</p>\n<p>On Oracle, the SQL <code class=\"docutils literal notranslate\">LOCALTIMESTAMP</code> is used to avoid issues with casting\n<code class=\"docutils literal notranslate\">CURRENT_TIMESTAMP</code> to <code class=\"docutils literal notranslate\">DateTimeField</code>.</p>\n</aside>\n</section>\n<section id=\"trunc\">\n<h3><code class=\"docutils literal notranslate\">Trunc</code><a class=\"heading-anchor\" href=\"#trunc\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Trunc\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Trunc</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">kind</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Trunc\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Truncates a date up to a significant component.</p>\n<p>When you only care if something happened in a particular year, hour, or day,\nbut not the exact second, then <code class=\"docutils literal notranslate\">Trunc</code> (and its subclasses) can be useful to\nfilter or aggregate your data. For example, you can use <code class=\"docutils literal notranslate\">Trunc</code> to calculate\nthe number of sales per day.</p>\n<p><code class=\"docutils literal notranslate\">Trunc</code> takes a single <code class=\"docutils literal notranslate\">expression</code>, representing a <code class=\"docutils literal notranslate\">DateField</code>,\n<code class=\"docutils literal notranslate\">TimeField</code>, or <code class=\"docutils literal notranslate\">DateTimeField</code>, a <code class=\"docutils literal notranslate\">kind</code> representing a date or time\npart, and an <code class=\"docutils literal notranslate\">output_field</code> that’s either <code class=\"docutils literal notranslate\">DateTimeField()</code>,\n<code class=\"docutils literal notranslate\">TimeField()</code>, or <code class=\"docutils literal notranslate\">DateField()</code>. It returns a datetime, date, or time\ndepending on <code class=\"docutils literal notranslate\">output_field</code>, with fields up to <code class=\"docutils literal notranslate\">kind</code> set to their minimum\nvalue. If <code class=\"docutils literal notranslate\">output_field</code> is omitted, it will default to the <code class=\"docutils literal notranslate\">output_field</code>\nof <code class=\"docutils literal notranslate\">expression</code>. A <code class=\"docutils literal notranslate\">tzinfo</code> subclass, usually provided by <a class=\"reference external\" href=\"https://docs.python.org/3/library/zoneinfo.html#module-zoneinfo\" title=\"(em Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\">zoneinfo</code></a>,\ncan be passed to truncate a value in a specific timezone.</p>\n<p>Given the datetime <code class=\"docutils literal notranslate\">2015-06-15 14:30:50.000321+00:00</code>, the built-in\n<code class=\"docutils literal notranslate\">kind</code>s return:</p>\n<ul class=\"simple\">\n<li><p>“year”: 2015-01-01 00:00:00+00:00</p></li>\n<li><p>“quarter”: 2015-04-01 00:00:00+00:00</p></li>\n<li><p>“month”: 2015-06-01 00:00:00+00:00</p></li>\n<li><p>“week”: 2015-06-15 00:00:00+00:00</p></li>\n<li><p>“day”: 2015-06-15 00:00:00+00:00</p></li>\n<li><p>“hour”: 2015-06-15 14:00:00+00:00</p></li>\n<li><p>“minute”: 2015-06-15 14:30:00+00:00</p></li>\n<li><p>“second”: 2015-06-15 14:30:50+00:00</p></li>\n</ul>\n<p>If a different timezone like <code class=\"docutils literal notranslate\">Australia/Melbourne</code> is active in Django, then\nthe datetime is converted to the new timezone before the value is truncated.\nThe timezone offset for Melbourne in the example date above is +10:00. The\nvalues returned when this timezone is active will be:</p>\n<ul class=\"simple\">\n<li><p>“year”: 2015-01-01 00:00:00+11:00</p></li>\n<li><p>“quarter”: 2015-04-01 00:00:00+10:00</p></li>\n<li><p>“month”: 2015-06-01 00:00:00+10:00</p></li>\n<li><p>“week”: 2015-06-16 00:00:00+10:00</p></li>\n<li><p>“day”: 2015-06-16 00:00:00+10:00</p></li>\n<li><p>“hour”: 2015-06-16 00:00:00+10:00</p></li>\n<li><p>“minute”: 2015-06-16 00:30:00+10:00</p></li>\n<li><p>“second”: 2015-06-16 00:30:50+10:00</p></li>\n</ul>\n<p>The year has an offset of +11:00 because the result transitioned into daylight\nsaving time.</p>\n<p>Each <code class=\"docutils literal notranslate\">kind</code> above has a corresponding <code class=\"docutils literal notranslate\">Trunc</code> subclass (listed below) that\nshould typically be used instead of the more verbose equivalent,\ne.g. use <code class=\"docutils literal notranslate\">TruncYear(...)</code> rather than <code class=\"docutils literal notranslate\">Trunc(..., kind='year')</code>.</p>\n<p>The subclasses are all defined as transforms, but they aren’t registered with\nany fields, because the lookup names are already reserved by the <code class=\"docutils literal notranslate\">Extract</code>\nsubclasses.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">datetime</span> <span class=\"kn\">import</span> datetime\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> Count<span class=\"p\">,</span> DateTimeField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Trunc\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">,</span> <span class=\"mi\">50</span><span class=\"p\">,</span> <span class=\"mi\">321</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"mi\">40</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">123</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">12</span><span class=\"p\">,</span> <span class=\"mi\">25</span><span class=\"p\">,</span> <span class=\"mi\">10</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">27</span><span class=\"p\">,</span> <span class=\"mi\">999</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>experiments_per_day <span class=\"o\">=</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>        start_day<span class=\"o\">=</span>Trunc<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;day&quot;</span><span class=\"p\">,</span> output_field<span class=\"o\">=</span>DateTimeField<span class=\"p\">())</span>\n<span class=\"gp\">... </span>    <span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;start_day&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>annotate<span class=\"p\">(</span>experiments<span class=\"o\">=</span>Count<span class=\"p\">(</span><span class=\"s2\">&quot;id&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> exp <span class=\"ow\">in</span> experiments_per_day<span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span>exp<span class=\"p\">[</span><span class=\"s2\">&quot;start_day&quot;</span><span class=\"p\">],</span> exp<span class=\"p\">[</span><span class=\"s2\">&quot;experiments&quot;</span><span class=\"p\">])</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">2015-06-15 00:00:00 2</span>\n<span class=\"go\">2015-12-25 00:00:00 1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>experiments <span class=\"o\">=</span> Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    start_day<span class=\"o\">=</span>Trunc<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;day&quot;</span><span class=\"p\">,</span> output_field<span class=\"o\">=</span>DateTimeField<span class=\"p\">())</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>filter<span class=\"p\">(</span>start_day<span class=\"o\">=</span>datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> exp <span class=\"ow\">in</span> experiments<span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span>exp<span class=\"o\">.</span>start_datetime<span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">2015-06-15 14:30:50.000321</span>\n<span class=\"go\">2015-06-15 14:40:02.000123</span>\n</code></pre></div>\n<section id=\"datefield-truncation\">\n<h4><code class=\"docutils literal notranslate\">DateField</code> truncation<a class=\"heading-anchor\" href=\"#datefield-truncation\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncYear\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncYear</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncYear\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'year'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncMonth\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncMonth</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncMonth\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'month'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncWeek\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncWeek</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncWeek\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Truncates to midnight on the Monday of the week.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'week'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncQuarter\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncQuarter</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncQuarter\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'quarter'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\">Trunc('date_field', kind)</code>. They truncate\nall parts of the date up to <code class=\"docutils literal notranslate\">kind</code> which allows grouping or filtering dates\nwith less precision. <code class=\"docutils literal notranslate\">expression</code> can have an <code class=\"docutils literal notranslate\">output_field</code> of either\n<code class=\"docutils literal notranslate\">DateField</code> or <code class=\"docutils literal notranslate\">DateTimeField</code>.</p>\n<p>Since <code class=\"docutils literal notranslate\">DateField</code>s don’t have a time component, only <code class=\"docutils literal notranslate\">Trunc</code> subclasses\nthat deal with date-parts can be used with <code class=\"docutils literal notranslate\">DateField</code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">datetime</span> <span class=\"kn\">import</span> UTC<span class=\"p\">,</span> datetime\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> Count\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> TruncMonth<span class=\"p\">,</span> TruncYear\n<span class=\"gp\">&gt;&gt;&gt; </span>start1 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2014</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">,</span> <span class=\"mi\">50</span><span class=\"p\">,</span> <span class=\"mi\">321</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>start2 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"mi\">40</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">123</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>start3 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">12</span><span class=\"p\">,</span> <span class=\"mi\">31</span><span class=\"p\">,</span> <span class=\"mi\">17</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">27</span><span class=\"p\">,</span> <span class=\"mi\">999</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>start1<span class=\"p\">,</span> start_date<span class=\"o\">=</span>start1<span class=\"o\">.</span>date<span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>start2<span class=\"p\">,</span> start_date<span class=\"o\">=</span>start2<span class=\"o\">.</span>date<span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>start3<span class=\"p\">,</span> start_date<span class=\"o\">=</span>start3<span class=\"o\">.</span>date<span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>experiments_per_year <span class=\"o\">=</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>year<span class=\"o\">=</span>TruncYear<span class=\"p\">(</span><span class=\"s2\">&quot;start_date&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;year&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>annotate<span class=\"p\">(</span>experiments<span class=\"o\">=</span>Count<span class=\"p\">(</span><span class=\"s2\">&quot;id&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> exp <span class=\"ow\">in</span> experiments_per_year<span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span>exp<span class=\"p\">[</span><span class=\"s2\">&quot;year&quot;</span><span class=\"p\">],</span> exp<span class=\"p\">[</span><span class=\"s2\">&quot;experiments&quot;</span><span class=\"p\">])</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">2014-01-01 1</span>\n<span class=\"go\">2015-01-01 2</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span> <span class=\"nn\">zoneinfo</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>melb <span class=\"o\">=</span> zoneinfo<span class=\"o\">.</span>ZoneInfo<span class=\"p\">(</span><span class=\"s2\">&quot;Australia/Melbourne&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>experiments_per_month <span class=\"o\">=</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>month<span class=\"o\">=</span>TruncMonth<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>melb<span class=\"p\">))</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;month&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>annotate<span class=\"p\">(</span>experiments<span class=\"o\">=</span>Count<span class=\"p\">(</span><span class=\"s2\">&quot;id&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> exp <span class=\"ow\">in</span> experiments_per_month<span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span>exp<span class=\"p\">[</span><span class=\"s2\">&quot;month&quot;</span><span class=\"p\">],</span> exp<span class=\"p\">[</span><span class=\"s2\">&quot;experiments&quot;</span><span class=\"p\">])</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">2015-06-01 00:00:00+10:00 1</span>\n<span class=\"go\">2016-01-01 00:00:00+11:00 1</span>\n<span class=\"go\">2014-06-01 00:00:00+10:00 1</span>\n</code></pre></div>\n</section>\n<section id=\"datetimefield-truncation\">\n<h4><code class=\"docutils literal notranslate\">DateTimeField</code> truncation<a class=\"heading-anchor\" href=\"#datetimefield-truncation\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncDate\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncDate</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncDate\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'date'</span></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">output_field = DateField()</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">TruncDate</code> casts <code class=\"docutils literal notranslate\">expression</code> to a date rather than using the built-in SQL\ntruncate function. It’s also registered as a transform on  <code class=\"docutils literal notranslate\">DateTimeField</code> as\n<code class=\"docutils literal notranslate\">__date</code>.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncTime\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncTime</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncTime\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">lookup_name = 'time'</span></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">output_field = TimeField()</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">TruncTime</code> casts <code class=\"docutils literal notranslate\">expression</code> to a time rather than using the built-in SQL\ntruncate function. It’s also registered as a transform on <code class=\"docutils literal notranslate\">DateTimeField</code> as\n<code class=\"docutils literal notranslate\">__time</code>.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncDay\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncDay</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncDay\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'day'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncHour\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncHour</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncHour\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'hour'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncMinute\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncMinute</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncMinute\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'minute'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.TruncSecond\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncSecond</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncSecond\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'second'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\">Trunc('datetime_field', kind)</code>. They\ntruncate all parts of the date up to <code class=\"docutils literal notranslate\">kind</code> and allow grouping or filtering\ndatetimes with less precision. <code class=\"docutils literal notranslate\">expression</code> must have an <code class=\"docutils literal notranslate\">output_field</code> of\n<code class=\"docutils literal notranslate\">DateTimeField</code>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">datetime</span> <span class=\"kn\">import</span> UTC<span class=\"p\">,</span> date<span class=\"p\">,</span> datetime\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> Count\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    TruncDate<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    TruncDay<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    TruncHour<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    TruncMinute<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    TruncSecond<span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span> <span class=\"nn\">zoneinfo</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>start1 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2014</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">,</span> <span class=\"mi\">50</span><span class=\"p\">,</span> <span class=\"mi\">321</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>start1<span class=\"p\">,</span> start_date<span class=\"o\">=</span>start1<span class=\"o\">.</span>date<span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>melb <span class=\"o\">=</span> zoneinfo<span class=\"o\">.</span>ZoneInfo<span class=\"p\">(</span><span class=\"s2\">&quot;Australia/Melbourne&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    date<span class=\"o\">=</span>TruncDate<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    day<span class=\"o\">=</span>TruncDay<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>melb<span class=\"p\">),</span>\n<span class=\"gp\">... </span>    hour<span class=\"o\">=</span>TruncHour<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>melb<span class=\"p\">),</span>\n<span class=\"gp\">... </span>    minute<span class=\"o\">=</span>TruncMinute<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    second<span class=\"o\">=</span>TruncSecond<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;date&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;day&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;hour&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;minute&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;second&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"go\">{&#39;date&#39;: datetime.date(2014, 6, 15),</span>\n<span class=\"go\"> &#39;day&#39;: datetime.datetime(2014, 6, 16, 0, 0, tzinfo=zoneinfo.ZoneInfo(&#39;Australia/Melbourne&#39;)),</span>\n<span class=\"go\"> &#39;hour&#39;: datetime.datetime(2014, 6, 16, 0, 0, tzinfo=zoneinfo.ZoneInfo(&#39;Australia/Melbourne&#39;)),</span>\n<span class=\"go\"> &#39;minute&#39;: &#39;minute&#39;: datetime.datetime(2014, 6, 15, 14, 30, tzinfo=UTC),</span>\n<span class=\"go\"> &#39;second&#39;: datetime.datetime(2014, 6, 15, 14, 30, 50, tzinfo=UTC)</span>\n<span class=\"go\">}</span>\n</code></pre></div>\n</section>\n<section id=\"timefield-truncation\">\n<h4><code class=\"docutils literal notranslate\">TimeField</code> truncation<a class=\"heading-anchor\" href=\"#timefield-truncation\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncHour</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'hour'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncMinute</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'minute'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TruncSecond</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">output_field<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tzinfo<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\">kind = 'second'</span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\">Trunc('time_field', kind)</code>. They truncate\nall parts of the time up to <code class=\"docutils literal notranslate\">kind</code> which allows grouping or filtering times\nwith less precision. <code class=\"docutils literal notranslate\">expression</code> can have an <code class=\"docutils literal notranslate\">output_field</code> of either\n<code class=\"docutils literal notranslate\">TimeField</code> or <code class=\"docutils literal notranslate\">DateTimeField</code>.</p>\n<p>Since <code class=\"docutils literal notranslate\">TimeField</code>s don’t have a date component, only <code class=\"docutils literal notranslate\">Trunc</code> subclasses\nthat deal with time-parts can be used with <code class=\"docutils literal notranslate\">TimeField</code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">datetime</span> <span class=\"kn\">import</span> UTC<span class=\"p\">,</span> datetime\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> Count<span class=\"p\">,</span> TimeField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> TruncHour\n<span class=\"gp\">&gt;&gt;&gt; </span>start1 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2014</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">,</span> <span class=\"mi\">50</span><span class=\"p\">,</span> <span class=\"mi\">321</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>start2 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2014</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">,</span> <span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"mi\">40</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">123</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>start3 <span class=\"o\">=</span> datetime<span class=\"p\">(</span><span class=\"mi\">2015</span><span class=\"p\">,</span> <span class=\"mi\">12</span><span class=\"p\">,</span> <span class=\"mi\">31</span><span class=\"p\">,</span> <span class=\"mi\">17</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">27</span><span class=\"p\">,</span> <span class=\"mi\">999</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>UTC<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>start1<span class=\"p\">,</span> start_time<span class=\"o\">=</span>start1<span class=\"o\">.</span>time<span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>start2<span class=\"p\">,</span> start_time<span class=\"o\">=</span>start2<span class=\"o\">.</span>time<span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>start_datetime<span class=\"o\">=</span>start3<span class=\"p\">,</span> start_time<span class=\"o\">=</span>start3<span class=\"o\">.</span>time<span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>experiments_per_hour <span class=\"o\">=</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>        hour<span class=\"o\">=</span>TruncHour<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> output_field<span class=\"o\">=</span>TimeField<span class=\"p\">()),</span>\n<span class=\"gp\">... </span>    <span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;hour&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>annotate<span class=\"p\">(</span>experiments<span class=\"o\">=</span>Count<span class=\"p\">(</span><span class=\"s2\">&quot;id&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> exp <span class=\"ow\">in</span> experiments_per_hour<span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span>exp<span class=\"p\">[</span><span class=\"s2\">&quot;hour&quot;</span><span class=\"p\">],</span> exp<span class=\"p\">[</span><span class=\"s2\">&quot;experiments&quot;</span><span class=\"p\">])</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">14:00:00 2</span>\n<span class=\"go\">17:00:00 1</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span> <span class=\"nn\">zoneinfo</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>melb <span class=\"o\">=</span> zoneinfo<span class=\"o\">.</span>ZoneInfo<span class=\"p\">(</span><span class=\"s2\">&quot;Australia/Melbourne&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>experiments_per_hour <span class=\"o\">=</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    Experiment<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>        hour<span class=\"o\">=</span>TruncHour<span class=\"p\">(</span><span class=\"s2\">&quot;start_datetime&quot;</span><span class=\"p\">,</span> tzinfo<span class=\"o\">=</span>melb<span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;hour&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"o\">.</span>annotate<span class=\"p\">(</span>experiments<span class=\"o\">=</span>Count<span class=\"p\">(</span><span class=\"s2\">&quot;id&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> exp <span class=\"ow\">in</span> experiments_per_hour<span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span>exp<span class=\"p\">[</span><span class=\"s2\">&quot;hour&quot;</span><span class=\"p\">],</span> exp<span class=\"p\">[</span><span class=\"s2\">&quot;experiments&quot;</span><span class=\"p\">])</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">2014-06-16 00:00:00+10:00 2</span>\n<span class=\"go\">2016-01-01 04:00:00+11:00 1</span>\n</code></pre></div>\n</section>\n</section>\n</section>\n<section id=\"json-functions\">\n<span id=\"id2\"></span><h2>JSON Functions<a class=\"heading-anchor\" href=\"#json-functions\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"jsonarray\">\n<h3><code class=\"docutils literal notranslate\">JSONArray</code><a class=\"heading-anchor\" href=\"#jsonarray\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"5.2\" role=\"note\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.JSONArray\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">JSONArray</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.JSONArray\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a list of field names or expressions and returns a JSON array\ncontaining those values.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> F\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> JSONArray<span class=\"p\">,</span> Lower\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">,</span> alias<span class=\"o\">=</span><span class=\"s2\">&quot;msmith&quot;</span><span class=\"p\">,</span> age<span class=\"o\">=</span><span class=\"mi\">25</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    json_array<span class=\"o\">=</span>JSONArray<span class=\"p\">(</span>\n<span class=\"gp\">... </span>        Lower<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;alias&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        F<span class=\"p\">(</span><span class=\"s2\">&quot;age&quot;</span><span class=\"p\">)</span> <span class=\"o\">*</span> <span class=\"mi\">2</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author<span class=\"o\">.</span>json_array\n<span class=\"go\">[&#39;margaret smith&#39;, &#39;msmith&#39;, 50]</span>\n</code></pre></div>\n</section>\n<section id=\"jsonobject\">\n<h3><code class=\"docutils literal notranslate\">JSONObject</code><a class=\"heading-anchor\" href=\"#jsonobject\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.JSONObject\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">JSONObject</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>fields</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.JSONObject\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Takes a list of key-value pairs and returns a JSON object containing those\npairs.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> F\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> JSONObject<span class=\"p\">,</span> Lower\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">,</span> alias<span class=\"o\">=</span><span class=\"s2\">&quot;msmith&quot;</span><span class=\"p\">,</span> age<span class=\"o\">=</span><span class=\"mi\">25</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    json_object<span class=\"o\">=</span>JSONObject<span class=\"p\">(</span>\n<span class=\"gp\">... </span>        name<span class=\"o\">=</span>Lower<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        alias<span class=\"o\">=</span><span class=\"s2\">&quot;alias&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        age<span class=\"o\">=</span>F<span class=\"p\">(</span><span class=\"s2\">&quot;age&quot;</span><span class=\"p\">)</span> <span class=\"o\">*</span> <span class=\"mi\">2</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author<span class=\"o\">.</span>json_object\n<span class=\"go\">{&#39;name&#39;: &#39;margaret smith&#39;, &#39;alias&#39;: &#39;msmith&#39;, &#39;age&#39;: 50}</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"math-functions\">\n<span id=\"id3\"></span><h2>Math Functions<a class=\"heading-anchor\" href=\"#math-functions\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>We’ll be using the following model in math function examples:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span> <span class=\"nc\">Vector</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    x <span class=\"o\">=</span> models<span class=\"o\">.</span>FloatField<span class=\"p\">()</span>\n    y <span class=\"o\">=</span> models<span class=\"o\">.</span>FloatField<span class=\"p\">()</span>\n</code></pre></div>\n<section id=\"abs\">\n<h3><code class=\"docutils literal notranslate\">Abs</code><a class=\"heading-anchor\" href=\"#abs\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Abs\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Abs</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Abs\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the absolute value of a numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Abs\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=-</span><span class=\"mf\">0.5</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">1.1</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_abs<span class=\"o\">=</span>Abs<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_abs<span class=\"o\">=</span>Abs<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_abs<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_abs\n<span class=\"go\">(0.5, 1.1)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Abs\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Abs<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors inside the unit cube</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__abs__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span> y__abs__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"acos\">\n<h3><code class=\"docutils literal notranslate\">ACos</code><a class=\"heading-anchor\" href=\"#acos\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ACos\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ACos</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ACos\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the arccosine of a numeric field or expression. The expression value\nmust be within the range -1 to 1.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> ACos\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">0.5</span><span class=\"p\">,</span> y<span class=\"o\">=-</span><span class=\"mf\">0.9</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_acos<span class=\"o\">=</span>ACos<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_acos<span class=\"o\">=</span>ACos<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_acos<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_acos\n<span class=\"go\">(1.0471975511965979, 2.6905658417935308)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> ACos\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>ACos<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose arccosine is less than 1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__acos__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span> y__acos__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"asin\">\n<h3><code class=\"docutils literal notranslate\">ASin</code><a class=\"heading-anchor\" href=\"#asin\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ASin\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ASin</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ASin\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the arcsine of a numeric field or expression. The expression value must\nbe in the range -1 to 1.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> ASin\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_asin<span class=\"o\">=</span>ASin<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_asin<span class=\"o\">=</span>ASin<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_asin<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_asin\n<span class=\"go\">(0.0, 1.5707963267948966)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> ASin\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>ASin<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose arcsine is less than 1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__asin__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span> y__asin__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"atan\">\n<h3><code class=\"docutils literal notranslate\">ATan</code><a class=\"heading-anchor\" href=\"#atan\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ATan\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ATan</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ATan\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the arctangent of a numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> ATan\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">3.12</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">6.987</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_atan<span class=\"o\">=</span>ATan<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_atan<span class=\"o\">=</span>ATan<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_atan<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_atan\n<span class=\"go\">(1.2606282660069106, 1.428638798133829)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> ATan\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>ATan<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose arctangent is less than 2</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__atan__lt<span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">,</span> y__atan__lt<span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"atan2\">\n<h3><code class=\"docutils literal notranslate\">ATan2</code><a class=\"heading-anchor\" href=\"#atan2\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.ATan2\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ATan2</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression1</em>, <em class=\"sig-param\">expression2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ATan2\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the arctangent of <code class=\"docutils literal notranslate\">expression1 / expression2</code>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> ATan2\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">2.5</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">1.9</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>atan2<span class=\"o\">=</span>ATan2<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>atan2\n<span class=\"go\">0.9209258773829491</span>\n</code></pre></div>\n</section>\n<section id=\"ceil\">\n<h3><code class=\"docutils literal notranslate\">Ceil</code><a class=\"heading-anchor\" href=\"#ceil\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Ceil\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Ceil</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Ceil\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the smallest integer greater than or equal to a numeric field or\nexpression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Ceil\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">3.12</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">7.0</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_ceil<span class=\"o\">=</span>Ceil<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_ceil<span class=\"o\">=</span>Ceil<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_ceil<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_ceil\n<span class=\"go\">(4.0, 7.0)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Ceil\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Ceil<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose ceil is less than 10</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__ceil__lt<span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">,</span> y__ceil__lt<span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"cos\">\n<h3><code class=\"docutils literal notranslate\">Cos</code><a class=\"heading-anchor\" href=\"#cos\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Cos\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Cos</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Cos\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the cosine  of a numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Cos\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=-</span><span class=\"mf\">8.0</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">3.1415926</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_cos<span class=\"o\">=</span>Cos<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_cos<span class=\"o\">=</span>Cos<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_cos<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_cos\n<span class=\"go\">(-0.14550003380861354, -0.9999999999999986)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Cos\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Cos<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose cosine is less than 0.5</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__cos__lt<span class=\"o\">=</span><span class=\"mf\">0.5</span><span class=\"p\">,</span> y__cos__lt<span class=\"o\">=</span><span class=\"mf\">0.5</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"cot\">\n<h3><code class=\"docutils literal notranslate\">Cot</code><a class=\"heading-anchor\" href=\"#cot\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Cot\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Cot</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Cot\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the cotangent of a numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Cot\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">12.0</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">1.0</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_cot<span class=\"o\">=</span>Cot<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_cot<span class=\"o\">=</span>Cot<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_cot<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_cot\n<span class=\"go\">(-1.5726734063976826, 0.642092615934331)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Cot\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Cot<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose cotangent is less than 1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__cot__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span> y__cot__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"degrees\">\n<h3><code class=\"docutils literal notranslate\">Degrees</code><a class=\"heading-anchor\" href=\"#degrees\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Degrees\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Degrees</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Degrees\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Converts a numeric field or expression from radians to degrees.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Degrees\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=-</span><span class=\"mf\">1.57</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">3.14</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_d<span class=\"o\">=</span>Degrees<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_d<span class=\"o\">=</span>Degrees<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_d<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_d\n<span class=\"go\">(-89.95437383553924, 179.9087476710785)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Degrees\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Degrees<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose degrees are less than 360</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__degrees__lt<span class=\"o\">=</span><span class=\"mi\">360</span><span class=\"p\">,</span> y__degrees__lt<span class=\"o\">=</span><span class=\"mi\">360</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"exp\">\n<h3><code class=\"docutils literal notranslate\">Exp</code><a class=\"heading-anchor\" href=\"#exp\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Exp\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Exp</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Exp\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the value of <code class=\"docutils literal notranslate\">e</code> (the natural logarithm base) raised to the power of\na numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Exp\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">5.4</span><span class=\"p\">,</span> y<span class=\"o\">=-</span><span class=\"mf\">2.0</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_exp<span class=\"o\">=</span>Exp<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_exp<span class=\"o\">=</span>Exp<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_exp<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_exp\n<span class=\"go\">(221.40641620418717, 0.1353352832366127)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Exp\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Exp<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose exp() is greater than 10</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__exp__gt<span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">,</span> y__exp__gt<span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"floor\">\n<h3><code class=\"docutils literal notranslate\">Floor</code><a class=\"heading-anchor\" href=\"#floor\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Floor\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Floor</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Floor\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the largest integer value not greater than a numeric field or\nexpression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Floor\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">5.4</span><span class=\"p\">,</span> y<span class=\"o\">=-</span><span class=\"mf\">2.3</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_floor<span class=\"o\">=</span>Floor<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_floor<span class=\"o\">=</span>Floor<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_floor<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_floor\n<span class=\"go\">(5.0, -3.0)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Floor\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Floor<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose floor() is greater than 10</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__floor__gt<span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">,</span> y__floor__gt<span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"ln\">\n<h3><code class=\"docutils literal notranslate\">Ln</code><a class=\"heading-anchor\" href=\"#ln\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Ln\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Ln</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Ln\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the natural logarithm a numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Ln\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">5.4</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">233.0</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_ln<span class=\"o\">=</span>Ln<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_ln<span class=\"o\">=</span>Ln<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_ln<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_ln\n<span class=\"go\">(1.6863989535702288, 5.4510384535657)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Ln\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Ln<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose value greater than e</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__ln__gt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span> y__ln__gt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"log\">\n<h3><code class=\"docutils literal notranslate\">Log</code><a class=\"heading-anchor\" href=\"#log\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Log\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Log</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression1</em>, <em class=\"sig-param\">expression2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Log\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts two numeric fields or expressions and returns the logarithm of\nthe second to base of the first.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Log\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">2.0</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">4.0</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>log<span class=\"o\">=</span>Log<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>log\n<span class=\"go\">2.0</span>\n</code></pre></div>\n</section>\n<section id=\"mod\">\n<h3><code class=\"docutils literal notranslate\">Mod</code><a class=\"heading-anchor\" href=\"#mod\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Mod\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Mod</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression1</em>, <em class=\"sig-param\">expression2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Mod\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts two numeric fields or expressions and returns the remainder of\nthe first divided by the second (modulo operation).</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Mod\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">5.4</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">2.3</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>mod<span class=\"o\">=</span>Mod<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>mod\n<span class=\"go\">0.8</span>\n</code></pre></div>\n</section>\n<section id=\"pi\">\n<h3><code class=\"docutils literal notranslate\">Pi</code><a class=\"heading-anchor\" href=\"#pi\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Pi\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Pi</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Pi\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the value of the mathematical constant <code class=\"docutils literal notranslate\">π</code>.</p>\n</section>\n<section id=\"power\">\n<h3><code class=\"docutils literal notranslate\">Power</code><a class=\"heading-anchor\" href=\"#power\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Power\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Power</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression1</em>, <em class=\"sig-param\">expression2</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Power\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts two numeric fields or expressions and returns the value of the first\nraised to the power of the second.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Power\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">,</span> y<span class=\"o\">=-</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>power<span class=\"o\">=</span>Power<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>power\n<span class=\"go\">0.25</span>\n</code></pre></div>\n</section>\n<section id=\"radians\">\n<h3><code class=\"docutils literal notranslate\">Radians</code><a class=\"heading-anchor\" href=\"#radians\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Radians\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Radians</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Radians\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Converts a numeric field or expression from degrees to radians.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Radians\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=-</span><span class=\"mi\">90</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mi\">180</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_r<span class=\"o\">=</span>Radians<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_r<span class=\"o\">=</span>Radians<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_r<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_r\n<span class=\"go\">(-1.5707963267948966, 3.141592653589793)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Radians\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Radians<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose radians are less than 1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__radians__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span> y__radians__lt<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"random\">\n<h3><code class=\"docutils literal notranslate\">Random</code><a class=\"heading-anchor\" href=\"#random\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Random\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Random</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Random\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns a random value in the range <code class=\"docutils literal notranslate\">0.0 ≤ x &lt; 1.0</code>.</p>\n</section>\n<section id=\"round\">\n<h3><code class=\"docutils literal notranslate\">Round</code><a class=\"heading-anchor\" href=\"#round\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Round\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Round</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">precision<span class=\"o\">=</span><span class=\"default_value\">0</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Round\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Rounds a numeric field or expression to <code class=\"docutils literal notranslate\">precision</code> (must be an integer)\ndecimal places. By default, it rounds to the nearest integer. Whether half\nvalues are rounded up or down depends on the database.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Round\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">5.4</span><span class=\"p\">,</span> y<span class=\"o\">=-</span><span class=\"mf\">2.37</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_r<span class=\"o\">=</span>Round<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_r<span class=\"o\">=</span>Round<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">,</span> precision<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_r<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_r\n<span class=\"go\">(5.0, -2.4)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Round\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Round<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose round() is less than 20</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__round__lt<span class=\"o\">=</span><span class=\"mi\">20</span><span class=\"p\">,</span> y__round__lt<span class=\"o\">=</span><span class=\"mi\">20</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"sign\">\n<h3><code class=\"docutils literal notranslate\">Sign</code><a class=\"heading-anchor\" href=\"#sign\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Sign\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Sign</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Sign\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the sign (-1, 0, 1) of a numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Sign\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">5.4</span><span class=\"p\">,</span> y<span class=\"o\">=-</span><span class=\"mf\">2.3</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_sign<span class=\"o\">=</span>Sign<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_sign<span class=\"o\">=</span>Sign<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_sign<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_sign\n<span class=\"go\">(1, -1)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Sign\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Sign<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose signs of components are less than 0.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__sign__lt<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">,</span> y__sign__lt<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"sin\">\n<h3><code class=\"docutils literal notranslate\">Sin</code><a class=\"heading-anchor\" href=\"#sin\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Sin\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Sin</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Sin\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the sine of a numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Sin\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">5.4</span><span class=\"p\">,</span> y<span class=\"o\">=-</span><span class=\"mf\">2.3</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_sin<span class=\"o\">=</span>Sin<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_sin<span class=\"o\">=</span>Sin<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_sin<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_sin\n<span class=\"go\">(-0.7727644875559871, -0.7457052121767203)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Sin\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Sin<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose sin() is less than 0</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__sin__lt<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">,</span> y__sin__lt<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"sqrt\">\n<h3><code class=\"docutils literal notranslate\">Sqrt</code><a class=\"heading-anchor\" href=\"#sqrt\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Sqrt\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Sqrt</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Sqrt\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the square root of a nonnegative numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Sqrt\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mf\">4.0</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mf\">12.0</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_sqrt<span class=\"o\">=</span>Sqrt<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_sqrt<span class=\"o\">=</span>Sqrt<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_sqrt<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_sqrt\n<span class=\"go\">(2.0, 3.46410)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Sqrt\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Sqrt<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose sqrt() is less than 5</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__sqrt__lt<span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">,</span> y__sqrt__lt<span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"tan\">\n<h3><code class=\"docutils literal notranslate\">Tan</code><a class=\"heading-anchor\" href=\"#tan\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Tan\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Tan</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Tan\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the tangent of a numeric field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Tan\n<span class=\"gp\">&gt;&gt;&gt; </span>Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>x<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">,</span> y<span class=\"o\">=</span><span class=\"mi\">12</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>x_tan<span class=\"o\">=</span>Tan<span class=\"p\">(</span><span class=\"s2\">&quot;x&quot;</span><span class=\"p\">),</span> y_tan<span class=\"o\">=</span>Tan<span class=\"p\">(</span><span class=\"s2\">&quot;y&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vector<span class=\"o\">.</span>x_tan<span class=\"p\">,</span> vector<span class=\"o\">.</span>y_tan\n<span class=\"go\">(0.0, -0.6358599286615808)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> FloatField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Tan\n<span class=\"gp\">&gt;&gt;&gt; </span>FloatField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Tan<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get vectors whose tangent is less than 0</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>vectors <span class=\"o\">=</span> Vector<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>x__tan__lt<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">,</span> y__tan__lt<span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"text-functions\">\n<span id=\"id4\"></span><h2>Text functions<a class=\"heading-anchor\" href=\"#text-functions\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"chr\">\n<h3><code class=\"docutils literal notranslate\">Chr</code><a class=\"heading-anchor\" href=\"#chr\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Chr\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Chr</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Chr\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a numeric field or expression and returns the text representation of\nthe expression as a single character. It works the same as Python’s <a class=\"reference external\" href=\"https://docs.python.org/3/library/functions.html#chr\" title=\"(em Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">chr()</code></a>\nfunction.</p>\n<p>Like <a class=\"reference internal\" href=\"#django.db.models.functions.Length\" title=\"django.db.models.functions.Length\"><code class=\"xref py py-class docutils literal notranslate\">Length</code></a>, it can be registered as a transform on <code class=\"docutils literal notranslate\">IntegerField</code>.\nThe default lookup name is <code class=\"docutils literal notranslate\">chr</code>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Chr\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>name__startswith<span class=\"o\">=</span>Chr<span class=\"p\">(</span><span class=\"nb\">ord</span><span class=\"p\">(</span><span class=\"s2\">&quot;M&quot;</span><span class=\"p\">)))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>name<span class=\"p\">)</span>\n<span class=\"go\">Margaret Smith</span>\n</code></pre></div>\n</section>\n<section id=\"concat\">\n<h3><code class=\"docutils literal notranslate\">Concat</code><a class=\"heading-anchor\" href=\"#concat\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Concat\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Concat</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Concat\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a list of at least two text fields or expressions and returns the\nconcatenated text. Each argument must be of a text or char type. If you want\nto concatenate a <code class=\"docutils literal notranslate\">TextField()</code> with a <code class=\"docutils literal notranslate\">CharField()</code>, then be sure to tell\nDjango that the <code class=\"docutils literal notranslate\">output_field</code> should be a <code class=\"docutils literal notranslate\">TextField()</code>. Specifying an\n<code class=\"docutils literal notranslate\">output_field</code> is also required when concatenating a <code class=\"docutils literal notranslate\">Value</code> as in the\nexample below.</p>\n<p>This function will never have a null result. On backends where a null argument\nresults in the entire expression being null, Django will ensure that each null\npart is converted to an empty string first.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get the display name as &quot;name (goes_by)&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> CharField<span class=\"p\">,</span> Value <span class=\"k\">as</span> V\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Concat\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">,</span> goes_by<span class=\"o\">=</span><span class=\"s2\">&quot;Maggie&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    screen_name<span class=\"o\">=</span>Concat<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> V<span class=\"p\">(</span><span class=\"s2\">&quot; (&quot;</span><span class=\"p\">),</span> <span class=\"s2\">&quot;goes_by&quot;</span><span class=\"p\">,</span> V<span class=\"p\">(</span><span class=\"s2\">&quot;)&quot;</span><span class=\"p\">),</span> output_field<span class=\"o\">=</span>CharField<span class=\"p\">())</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>screen_name<span class=\"p\">)</span>\n<span class=\"go\">Margaret Smith (Maggie)</span>\n</code></pre></div>\n</section>\n<section id=\"left\">\n<h3><code class=\"docutils literal notranslate\">Left</code><a class=\"heading-anchor\" href=\"#left\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Left\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Left</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">length</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Left\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the first <code class=\"docutils literal notranslate\">length</code> characters of the given text field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Left\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>first_initial<span class=\"o\">=</span>Left<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>first_initial<span class=\"p\">)</span>\n<span class=\"go\">M</span>\n</code></pre></div>\n</section>\n<section id=\"length\">\n<h3><code class=\"docutils literal notranslate\">Length</code><a class=\"heading-anchor\" href=\"#length\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Length\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Length</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Length\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a single text field or expression and returns the number of characters\nthe value has. If the expression is null, then the length will also be null.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get the length of the name and goes_by fields</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Length\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    name_length<span class=\"o\">=</span>Length<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">),</span> goes_by_length<span class=\"o\">=</span>Length<span class=\"p\">(</span><span class=\"s2\">&quot;goes_by&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>name_length<span class=\"p\">,</span> author<span class=\"o\">.</span>goes_by_length<span class=\"p\">)</span>\n<span class=\"go\">(14, None)</span>\n</code></pre></div>\n<p>It can also be registered as a transform. For example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> CharField\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Length\n<span class=\"gp\">&gt;&gt;&gt; </span>CharField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>Length<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Get authors whose name is longer than 7 characters</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>authors <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>name__length__gt<span class=\"o\">=</span><span class=\"mi\">7</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"lower\">\n<h3><code class=\"docutils literal notranslate\">Lower</code><a class=\"heading-anchor\" href=\"#lower\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Lower\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Lower</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Lower\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a single text field or expression and returns the lowercase\nrepresentation.</p>\n<p>It can also be registered as a transform as described in <a class=\"reference internal\" href=\"#django.db.models.functions.Length\" title=\"django.db.models.functions.Length\"><code class=\"xref py py-class docutils literal notranslate\">Length</code></a>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Lower\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>name_lower<span class=\"o\">=</span>Lower<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>name_lower<span class=\"p\">)</span>\n<span class=\"go\">margaret smith</span>\n</code></pre></div>\n</section>\n<section id=\"lpad\">\n<h3><code class=\"docutils literal notranslate\">LPad</code><a class=\"heading-anchor\" href=\"#lpad\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.LPad\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">LPad</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">length</em>, <em class=\"sig-param\">fill_text<span class=\"o\">=</span><span class=\"default_value\">Value(' ')</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.LPad\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the value of the given text field or expression padded on the left side\nwith <code class=\"docutils literal notranslate\">fill_text</code> so that the resulting value is <code class=\"docutils literal notranslate\">length</code> characters long.\nThe default <code class=\"docutils literal notranslate\">fill_text</code> is a space.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> Value\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> LPad\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;John&quot;</span><span class=\"p\">,</span> alias<span class=\"o\">=</span><span class=\"s2\">&quot;j&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>update<span class=\"p\">(</span>name<span class=\"o\">=</span>LPad<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">,</span> Value<span class=\"p\">(</span><span class=\"s2\">&quot;abc&quot;</span><span class=\"p\">)))</span>\n<span class=\"go\">1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span>alias<span class=\"o\">=</span><span class=\"s2\">&quot;j&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>name<span class=\"p\">)</span>\n<span class=\"go\">abcaJohn</span>\n</code></pre></div>\n</section>\n<section id=\"ltrim\">\n<h3><code class=\"docutils literal notranslate\">LTrim</code><a class=\"heading-anchor\" href=\"#ltrim\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.LTrim\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">LTrim</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.LTrim\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Similar to <a class=\"reference internal\" href=\"#django.db.models.functions.Trim\" title=\"django.db.models.functions.Trim\"><code class=\"xref py py-class docutils literal notranslate\">Trim</code></a>, but removes only leading\nspaces.</p>\n</section>\n<section id=\"md5\">\n<h3><code class=\"docutils literal notranslate\">MD5</code><a class=\"heading-anchor\" href=\"#md5\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.MD5\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MD5</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.MD5\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a single text field or expression and returns the MD5 hash of the\nstring.</p>\n<p>It can also be registered as a transform as described in <a class=\"reference internal\" href=\"#django.db.models.functions.Length\" title=\"django.db.models.functions.Length\"><code class=\"xref py py-class docutils literal notranslate\">Length</code></a>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> MD5\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>name_md5<span class=\"o\">=</span>MD5<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>name_md5<span class=\"p\">)</span>\n<span class=\"go\">749fb689816b2db85f5b169c2055b247</span>\n</code></pre></div>\n</section>\n<section id=\"ord\">\n<h3><code class=\"docutils literal notranslate\">Ord</code><a class=\"heading-anchor\" href=\"#ord\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Ord\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Ord</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Ord\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a single text field or expression and returns the Unicode code point\nvalue for the first character of that expression. It works similar to Python’s\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/functions.html#ord\" title=\"(em Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">ord()</code></a> function, but an exception isn’t raised if the expression is more\nthan one character long.</p>\n<p>It can also be registered as a transform as described in <a class=\"reference internal\" href=\"#django.db.models.functions.Length\" title=\"django.db.models.functions.Length\"><code class=\"xref py py-class docutils literal notranslate\">Length</code></a>.\nThe default lookup name is <code class=\"docutils literal notranslate\">ord</code>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Ord\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>name_code_point<span class=\"o\">=</span>Ord<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>name_code_point<span class=\"p\">)</span>\n<span class=\"go\">77</span>\n</code></pre></div>\n</section>\n<section id=\"repeat\">\n<h3><code class=\"docutils literal notranslate\">Repeat</code><a class=\"heading-anchor\" href=\"#repeat\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Repeat\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Repeat</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">number</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Repeat\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the value of the given text field or expression repeated <code class=\"docutils literal notranslate\">number</code>\ntimes.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Repeat\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;John&quot;</span><span class=\"p\">,</span> alias<span class=\"o\">=</span><span class=\"s2\">&quot;j&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>update<span class=\"p\">(</span>name<span class=\"o\">=</span>Repeat<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">))</span>\n<span class=\"go\">1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span>alias<span class=\"o\">=</span><span class=\"s2\">&quot;j&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>name<span class=\"p\">)</span>\n<span class=\"go\">JohnJohnJohn</span>\n</code></pre></div>\n</section>\n<section id=\"replace\">\n<h3><code class=\"docutils literal notranslate\">Replace</code><a class=\"heading-anchor\" href=\"#replace\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Replace\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Replace</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">text</em>, <em class=\"sig-param\">replacement<span class=\"o\">=</span><span class=\"default_value\">Value('')</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Replace\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Replaces all occurrences of <code class=\"docutils literal notranslate\">text</code> with <code class=\"docutils literal notranslate\">replacement</code> in <code class=\"docutils literal notranslate\">expression</code>.\nThe default replacement text is the empty string. The arguments to the function\nare case-sensitive.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> Value\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Replace\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Johnson&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>update<span class=\"p\">(</span>name<span class=\"o\">=</span>Replace<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> Value<span class=\"p\">(</span><span class=\"s2\">&quot;Margaret&quot;</span><span class=\"p\">),</span> Value<span class=\"p\">(</span><span class=\"s2\">&quot;Margareth&quot;</span><span class=\"p\">)))</span>\n<span class=\"go\">2</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>values<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [{&#39;name&#39;: &#39;Margareth Johnson&#39;}, {&#39;name&#39;: &#39;Margareth Smith&#39;}]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"reverse\">\n<h3><code class=\"docutils literal notranslate\">Reverse</code><a class=\"heading-anchor\" href=\"#reverse\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Reverse\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Reverse</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Reverse\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a single text field or expression and returns the characters of that\nexpression in reverse order.</p>\n<p>It can also be registered as a transform as described in <a class=\"reference internal\" href=\"#django.db.models.functions.Length\" title=\"django.db.models.functions.Length\"><code class=\"xref py py-class docutils literal notranslate\">Length</code></a>. The\ndefault lookup name is <code class=\"docutils literal notranslate\">reverse</code>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Reverse\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>backward<span class=\"o\">=</span>Reverse<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>backward<span class=\"p\">)</span>\n<span class=\"go\">htimS teragraM</span>\n</code></pre></div>\n</section>\n<section id=\"right\">\n<h3><code class=\"docutils literal notranslate\">Right</code><a class=\"heading-anchor\" href=\"#right\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Right\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Right</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">length</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Right\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the last <code class=\"docutils literal notranslate\">length</code> characters of the given text field or expression.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Right\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>last_letter<span class=\"o\">=</span>Right<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>last_letter<span class=\"p\">)</span>\n<span class=\"go\">h</span>\n</code></pre></div>\n</section>\n<section id=\"rpad\">\n<h3><code class=\"docutils literal notranslate\">RPad</code><a class=\"heading-anchor\" href=\"#rpad\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.RPad\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">RPad</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">length</em>, <em class=\"sig-param\">fill_text<span class=\"o\">=</span><span class=\"default_value\">Value(' ')</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.RPad\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Similar to <a class=\"reference internal\" href=\"#django.db.models.functions.LPad\" title=\"django.db.models.functions.LPad\"><code class=\"xref py py-class docutils literal notranslate\">LPad</code></a>, but pads on the right\nside.</p>\n</section>\n<section id=\"rtrim\">\n<h3><code class=\"docutils literal notranslate\">RTrim</code><a class=\"heading-anchor\" href=\"#rtrim\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.RTrim\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">RTrim</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.RTrim\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Similar to <a class=\"reference internal\" href=\"#django.db.models.functions.Trim\" title=\"django.db.models.functions.Trim\"><code class=\"xref py py-class docutils literal notranslate\">Trim</code></a>, but removes only trailing\nspaces.</p>\n</section>\n<section id=\"sha1-sha224-sha256-sha384-and-sha512\">\n<h3><code class=\"docutils literal notranslate\">SHA1</code>, <code class=\"docutils literal notranslate\">SHA224</code>, <code class=\"docutils literal notranslate\">SHA256</code>, <code class=\"docutils literal notranslate\">SHA384</code>, and <code class=\"docutils literal notranslate\">SHA512</code><a class=\"heading-anchor\" href=\"#sha1-sha224-sha256-sha384-and-sha512\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.SHA1\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">SHA1</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.SHA1\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.SHA224\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">SHA224</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.SHA224\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.SHA256\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">SHA256</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.SHA256\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.SHA384\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">SHA384</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.SHA384\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.SHA512\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">SHA512</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.SHA512\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a single text field or expression and returns the particular hash of\nthe string.</p>\n<p>They can also be registered as transforms as described in <a class=\"reference internal\" href=\"#django.db.models.functions.Length\" title=\"django.db.models.functions.Length\"><code class=\"xref py py-class docutils literal notranslate\">Length</code></a>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> SHA1\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>name_sha1<span class=\"o\">=</span>SHA1<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>name_sha1<span class=\"p\">)</span>\n<span class=\"go\">b87efd8a6c991c390be5a68e8a7945a7851c7e5c</span>\n</code></pre></div>\n<aside class=\"admonition-postgresql admonition\" role=\"note\">\n<p class=\"admonition-title\">PostgreSQL</p>\n<p>The <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/pgcrypto.html\">pgcrypto extension</a> must be installed. You can use the\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/contrib/postgres/operations/#django.contrib.postgres.operations.CryptoExtension\" title=\"django.contrib.postgres.operations.CryptoExtension\"><code class=\"xref py py-class docutils literal notranslate\">CryptoExtension</code></a> migration\noperation to install it.</p>\n</aside>\n<aside class=\"admonition-oracle admonition\" role=\"note\">\n<p class=\"admonition-title\">Oracle</p>\n<p>Oracle doesn’t support the <code class=\"docutils literal notranslate\">SHA224</code> function.</p>\n</aside>\n</section>\n<section id=\"strindex\">\n<h3><code class=\"docutils literal notranslate\">StrIndex</code><a class=\"heading-anchor\" href=\"#strindex\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.StrIndex\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">StrIndex</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">substring</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.StrIndex\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns a positive integer corresponding to the 1-indexed position of the first\noccurrence of <code class=\"docutils literal notranslate\">substring</code> inside <code class=\"docutils literal notranslate\">expression</code>, or 0 if <code class=\"docutils literal notranslate\">substring</code> is not\nfound.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models</span> <span class=\"kn\">import</span> Value <span class=\"k\">as</span> V\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> StrIndex\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Smith, Margaret&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Jackson&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Jackson&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>annotate<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    smith_index<span class=\"o\">=</span>StrIndex<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> V<span class=\"p\">(</span><span class=\"s2\">&quot;Smith&quot;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span>get<span class=\"p\">()</span><span class=\"o\">.</span>smith_index\n<span class=\"go\">0</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>authors <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>smith_index<span class=\"o\">=</span>StrIndex<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> V<span class=\"p\">(</span><span class=\"s2\">&quot;Smith&quot;</span><span class=\"p\">)))</span><span class=\"o\">.</span>filter<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    smith_index__gt<span class=\"o\">=</span><span class=\"mi\">0</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Author: Margaret Smith&gt;, &lt;Author: Smith, Margaret&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Aviso</p>\n<p>In MySQL, a database table’s <a class=\"reference internal\" href=\"/pt-br/6.0/ref/databases/#mysql-collation\"><span class=\"std std-ref\">collation</span></a> determines\nwhether string comparisons (such as the <code class=\"docutils literal notranslate\">expression</code> and <code class=\"docutils literal notranslate\">substring</code> of\nthis function) are case-sensitive. Comparisons are case-insensitive by\ndefault.</p>\n</aside>\n</section>\n<section id=\"substr\">\n<h3><code class=\"docutils literal notranslate\">Substr</code><a class=\"heading-anchor\" href=\"#substr\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Substr\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Substr</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">pos</em>, <em class=\"sig-param\">length<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Substr\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns a substring of length <code class=\"docutils literal notranslate\">length</code> from the field or expression starting\nat position <code class=\"docutils literal notranslate\">pos</code>. The position is 1-indexed, so the position must be greater\nthan 0. If <code class=\"docutils literal notranslate\">length</code> is <code class=\"docutils literal notranslate\">None</code>, then the rest of the string will be\nreturned.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Set the alias to the first 5 characters of the name as lowercase</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Lower<span class=\"p\">,</span> Substr\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>update<span class=\"p\">(</span>alias<span class=\"o\">=</span>Lower<span class=\"p\">(</span>Substr<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">)))</span>\n<span class=\"go\">1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>alias<span class=\"p\">)</span>\n<span class=\"go\">marga</span>\n</code></pre></div>\n</section>\n<section id=\"trim\">\n<h3><code class=\"docutils literal notranslate\">Trim</code><a class=\"heading-anchor\" href=\"#trim\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Trim\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Trim</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Trim\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the value of the given text field or expression with leading and\ntrailing spaces removed.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Trim\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;  John  &quot;</span><span class=\"p\">,</span> alias<span class=\"o\">=</span><span class=\"s2\">&quot;j&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>update<span class=\"p\">(</span>name<span class=\"o\">=</span>Trim<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">))</span>\n<span class=\"go\">1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span>alias<span class=\"o\">=</span><span class=\"s2\">&quot;j&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>name<span class=\"p\">)</span>\n<span class=\"go\">John</span>\n</code></pre></div>\n</section>\n<section id=\"upper\">\n<h3><code class=\"docutils literal notranslate\">Upper</code><a class=\"heading-anchor\" href=\"#upper\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Upper\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Upper</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Upper\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Accepts a single text field or expression and returns the uppercase\nrepresentation.</p>\n<p>It can also be registered as a transform as described in <a class=\"reference internal\" href=\"#django.db.models.functions.Length\" title=\"django.db.models.functions.Length\"><code class=\"xref py py-class docutils literal notranslate\">Length</code></a>.</p>\n<p>Usage example:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Upper\n<span class=\"gp\">&gt;&gt;&gt; </span>Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Margaret Smith&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>author <span class=\"o\">=</span> Author<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>name_upper<span class=\"o\">=</span>Upper<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">))</span><span class=\"o\">.</span>get<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span>author<span class=\"o\">.</span>name_upper<span class=\"p\">)</span>\n<span class=\"go\">MARGARET SMITH</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"window-functions\">\n<span id=\"id5\"></span><h2>Window functions<a class=\"heading-anchor\" href=\"#window-functions\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>There are a number of functions to use in a\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/expressions/#django.db.models.expressions.Window\" title=\"django.db.models.expressions.Window\"><code class=\"xref py py-class docutils literal notranslate\">Window</code></a> expression for computing the rank\nof elements or the <a class=\"reference internal\" href=\"#django.db.models.functions.Ntile\" title=\"django.db.models.functions.Ntile\"><code class=\"xref py py-class docutils literal notranslate\">Ntile</code></a> of some rows.</p>\n<section id=\"cumedist\">\n<h3><code class=\"docutils literal notranslate\">CumeDist</code><a class=\"heading-anchor\" href=\"#cumedist\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.CumeDist\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">CumeDist</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.CumeDist\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Calculates the cumulative distribution of a value within a window or partition.\nThe cumulative distribution is defined as the number of rows preceding or\npeered with the current row divided by the total number of rows in the frame.</p>\n</section>\n<section id=\"denserank\">\n<h3><code class=\"docutils literal notranslate\">DenseRank</code><a class=\"heading-anchor\" href=\"#denserank\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.DenseRank\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">DenseRank</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.DenseRank\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Equivalent to <a class=\"reference internal\" href=\"#django.db.models.functions.Rank\" title=\"django.db.models.functions.Rank\"><code class=\"xref py py-class docutils literal notranslate\">Rank</code></a> but does not have gaps.</p>\n</section>\n<section id=\"firstvalue\">\n<h3><code class=\"docutils literal notranslate\">FirstValue</code><a class=\"heading-anchor\" href=\"#firstvalue\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.FirstValue\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">FirstValue</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.FirstValue\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Returns the value evaluated at the row that’s the first row of the window\nframe, or <code class=\"docutils literal notranslate\">None</code> if no such value exists.</p>\n</section>\n<section id=\"lag\">\n<h3><code class=\"docutils literal notranslate\">Lag</code><a class=\"heading-anchor\" href=\"#lag\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Lag\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Lag</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">offset<span class=\"o\">=</span><span class=\"default_value\">1</span></em>, <em class=\"sig-param\">default<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Lag\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Calculates the value offset by <code class=\"docutils literal notranslate\">offset</code>, and if no row exists there, returns\n<code class=\"docutils literal notranslate\">default</code>.</p>\n<p><code class=\"docutils literal notranslate\">default</code> must have the same type as the <code class=\"docutils literal notranslate\">expression</code>, however, this is\nonly validated by the database and not in Python.</p>\n<aside class=\"admonition-mariadb-and-default admonition\" role=\"note\">\n<p class=\"admonition-title\">MariaDB and <code class=\"docutils literal notranslate\">default</code></p>\n<p>MariaDB <a class=\"reference external\" href=\"https://jira.mariadb.org/browse/MDEV-12981\">doesn’t support</a>\nthe <code class=\"docutils literal notranslate\">default</code> parameter.</p>\n</aside>\n</section>\n<section id=\"lastvalue\">\n<h3><code class=\"docutils literal notranslate\">LastValue</code><a class=\"heading-anchor\" href=\"#lastvalue\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.LastValue\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">LastValue</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.LastValue\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Comparable to <a class=\"reference internal\" href=\"#django.db.models.functions.FirstValue\" title=\"django.db.models.functions.FirstValue\"><code class=\"xref py py-class docutils literal notranslate\">FirstValue</code></a>, it calculates the last value in a given\nframe clause.</p>\n</section>\n<section id=\"lead\">\n<h3><code class=\"docutils literal notranslate\">Lead</code><a class=\"heading-anchor\" href=\"#lead\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Lead\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Lead</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">offset<span class=\"o\">=</span><span class=\"default_value\">1</span></em>, <em class=\"sig-param\">default<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Lead\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Calculates the leading value in a given <a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/expressions/#window-frames\"><span class=\"std std-ref\">frame</span></a>. Both\n<code class=\"docutils literal notranslate\">offset</code> and <code class=\"docutils literal notranslate\">default</code> are evaluated with respect to the current row.</p>\n<p><code class=\"docutils literal notranslate\">default</code> must have the same type as the <code class=\"docutils literal notranslate\">expression</code>, however, this is\nonly validated by the database and not in Python.</p>\n<aside class=\"admonition-mariadb-and-default admonition\" role=\"note\">\n<p class=\"admonition-title\">MariaDB and <code class=\"docutils literal notranslate\">default</code></p>\n<p>MariaDB <a class=\"reference external\" href=\"https://jira.mariadb.org/browse/MDEV-12981\">doesn’t support</a>\nthe <code class=\"docutils literal notranslate\">default</code> parameter.</p>\n</aside>\n</section>\n<section id=\"nthvalue\">\n<h3><code class=\"docutils literal notranslate\">NthValue</code><a class=\"heading-anchor\" href=\"#nthvalue\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.NthValue\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">NthValue</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">expression</em>, <em class=\"sig-param\">nth<span class=\"o\">=</span><span class=\"default_value\">1</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.NthValue\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Computes the row relative to the offset <code class=\"docutils literal notranslate\">nth</code> (must be a positive value)\nwithin the window. Returns <code class=\"docutils literal notranslate\">None</code> if no row exists.</p>\n<p>Some databases may handle a nonexistent nth-value differently. For example,\nOracle returns an empty string rather than <code class=\"docutils literal notranslate\">None</code> for character-based\nexpressions. Django doesn’t do any conversions in these cases.</p>\n</section>\n<section id=\"ntile\">\n<h3><code class=\"docutils literal notranslate\">Ntile</code><a class=\"heading-anchor\" href=\"#ntile\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Ntile\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Ntile</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">num_buckets<span class=\"o\">=</span><span class=\"default_value\">1</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Ntile\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Calculates a partition for each of the rows in the frame clause, distributing\nnumbers as evenly as possible between 1 and <code class=\"docutils literal notranslate\">num_buckets</code>. If the rows don’t\ndivide evenly into a number of buckets, one or more buckets will be represented\nmore frequently.</p>\n</section>\n<section id=\"percentrank\">\n<h3><code class=\"docutils literal notranslate\">PercentRank</code><a class=\"heading-anchor\" href=\"#percentrank\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.PercentRank\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">PercentRank</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.PercentRank\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Computes the relative rank of the rows in the frame clause. This computation is\nequivalent to evaluating:</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Text code\"><code>(rank - 1) / (total rows - 1)\n</code></pre></div>\n<p>The following table explains the calculation for the relative rank of a row:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Row #</p></th>\n<th class=\"head\"><p>Value</p></th>\n<th class=\"head\"><p>Rank</p></th>\n<th class=\"head\"><p>Calculation</p></th>\n<th class=\"head\"><p>Relative Rank</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>1</p></td>\n<td><p>15</p></td>\n<td><p>1</p></td>\n<td><p>(1-1)/(7-1)</p></td>\n<td><p>0.0000</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>2</p></td>\n<td><p>20</p></td>\n<td><p>2</p></td>\n<td><p>(2-1)/(7-1)</p></td>\n<td><p>0.1666</p></td>\n</tr>\n<tr class=\"row-even\"><td><p>3</p></td>\n<td><p>20</p></td>\n<td><p>2</p></td>\n<td><p>(2-1)/(7-1)</p></td>\n<td><p>0.1666</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>4</p></td>\n<td><p>20</p></td>\n<td><p>2</p></td>\n<td><p>(2-1)/(7-1)</p></td>\n<td><p>0.1666</p></td>\n</tr>\n<tr class=\"row-even\"><td><p>5</p></td>\n<td><p>30</p></td>\n<td><p>5</p></td>\n<td><p>(5-1)/(7-1)</p></td>\n<td><p>0.6666</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>6</p></td>\n<td><p>30</p></td>\n<td><p>5</p></td>\n<td><p>(5-1)/(7-1)</p></td>\n<td><p>0.6666</p></td>\n</tr>\n<tr class=\"row-even\"><td><p>7</p></td>\n<td><p>40</p></td>\n<td><p>7</p></td>\n<td><p>(7-1)/(7-1)</p></td>\n<td><p>1.0000</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"rank\">\n<h3><code class=\"docutils literal notranslate\">Rank</code><a class=\"heading-anchor\" href=\"#rank\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.Rank\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">Rank</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Rank\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Comparable to <a class=\"reference internal\" href=\"#django.db.models.functions.RowNumber\" title=\"django.db.models.functions.RowNumber\"><code class=\"xref py py-class docutils literal notranslate\">RowNumber</code></a>, this function ranks rows in the window. The\ncomputed rank contains gaps. Use <a class=\"reference internal\" href=\"#django.db.models.functions.DenseRank\" title=\"django.db.models.functions.DenseRank\"><code class=\"xref py py-class docutils literal notranslate\">DenseRank</code></a> to compute rank without\ngaps.</p>\n</section>\n<section id=\"rownumber\">\n<h3><code class=\"docutils literal notranslate\">RowNumber</code><a class=\"heading-anchor\" href=\"#rownumber\"><span class=\"visually-hidden\">Link para este cabeçalho</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.functions.RowNumber\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">RowNumber</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>expressions</em>, <em class=\"sig-param\"><span class=\"o\">**</span>extra</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.RowNumber\"><span class=\"visually-hidden\">Link para esta definição</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Computes the row number according to the ordering of either the frame clause\nor the ordering of the whole query if there is no partitioning of the\n<a class=\"reference internal\" href=\"/pt-br/6.0/ref/models/expressions/#window-frames\"><span class=\"std std-ref\">window frame</span></a>.</p>\n</section>\n</section>","rootId":"module-django.db.models.functions","toc":[{"title":"Comparison and conversion functions","anchor":"comparison-and-conversion-functions","children":[{"title":"Cast","anchor":"cast","children":[]},{"title":"Coalesce","anchor":"coalesce","children":[]},{"title":"Collate","anchor":"collate","children":[]},{"title":"Greatest","anchor":"greatest","children":[]},{"title":"Least","anchor":"least","children":[]},{"title":"NullIf","anchor":"nullif","children":[]}]},{"title":"Date functions","anchor":"date-functions","children":[{"title":"Extract","anchor":"extract","children":[{"title":"DateField extracts","anchor":"datefield-extracts","children":[]},{"title":"DateTimeField extracts","anchor":"datetimefield-extracts","children":[]}]},{"title":"Now","anchor":"now","children":[]},{"title":"Trunc","anchor":"trunc","children":[{"title":"DateField truncation","anchor":"datefield-truncation","children":[]},{"title":"DateTimeField truncation","anchor":"datetimefield-truncation","children":[]},{"title":"TimeField truncation","anchor":"timefield-truncation","children":[]}]}]},{"title":"JSON Functions","anchor":"json-functions","children":[{"title":"JSONArray","anchor":"jsonarray","children":[]},{"title":"JSONObject","anchor":"jsonobject","children":[]}]},{"title":"Math Functions","anchor":"math-functions","children":[{"title":"Abs","anchor":"abs","children":[]},{"title":"ACos","anchor":"acos","children":[]},{"title":"ASin","anchor":"asin","children":[]},{"title":"ATan","anchor":"atan","children":[]},{"title":"ATan2","anchor":"atan2","children":[]},{"title":"Ceil","anchor":"ceil","children":[]},{"title":"Cos","anchor":"cos","children":[]},{"title":"Cot","anchor":"cot","children":[]},{"title":"Degrees","anchor":"degrees","children":[]},{"title":"Exp","anchor":"exp","children":[]},{"title":"Floor","anchor":"floor","children":[]},{"title":"Ln","anchor":"ln","children":[]},{"title":"Log","anchor":"log","children":[]},{"title":"Mod","anchor":"mod","children":[]},{"title":"Pi","anchor":"pi","children":[]},{"title":"Power","anchor":"power","children":[]},{"title":"Radians","anchor":"radians","children":[]},{"title":"Random","anchor":"random","children":[]},{"title":"Round","anchor":"round","children":[]},{"title":"Sign","anchor":"sign","children":[]},{"title":"Sin","anchor":"sin","children":[]},{"title":"Sqrt","anchor":"sqrt","children":[]},{"title":"Tan","anchor":"tan","children":[]}]},{"title":"Text functions","anchor":"text-functions","children":[{"title":"Chr","anchor":"chr","children":[]},{"title":"Concat","anchor":"concat","children":[]},{"title":"Left","anchor":"left","children":[]},{"title":"Length","anchor":"length","children":[]},{"title":"Lower","anchor":"lower","children":[]},{"title":"LPad","anchor":"lpad","children":[]},{"title":"LTrim","anchor":"ltrim","children":[]},{"title":"MD5","anchor":"md5","children":[]},{"title":"Ord","anchor":"ord","children":[]},{"title":"Repeat","anchor":"repeat","children":[]},{"title":"Replace","anchor":"replace","children":[]},{"title":"Reverse","anchor":"reverse","children":[]},{"title":"Right","anchor":"right","children":[]},{"title":"RPad","anchor":"rpad","children":[]},{"title":"RTrim","anchor":"rtrim","children":[]},{"title":"SHA1, SHA224, SHA256, SHA384, and SHA512","anchor":"sha1-sha224-sha256-sha384-and-sha512","children":[]},{"title":"StrIndex","anchor":"strindex","children":[]},{"title":"Substr","anchor":"substr","children":[]},{"title":"Trim","anchor":"trim","children":[]},{"title":"Upper","anchor":"upper","children":[]}]},{"title":"Window functions","anchor":"window-functions","children":[{"title":"CumeDist","anchor":"cumedist","children":[]},{"title":"DenseRank","anchor":"denserank","children":[]},{"title":"FirstValue","anchor":"firstvalue","children":[]},{"title":"Lag","anchor":"lag","children":[]},{"title":"LastValue","anchor":"lastvalue","children":[]},{"title":"Lead","anchor":"lead","children":[]},{"title":"NthValue","anchor":"nthvalue","children":[]},{"title":"Ntile","anchor":"ntile","children":[]},{"title":"PercentRank","anchor":"percentrank","children":[]},{"title":"Rank","anchor":"rank","children":[]},{"title":"RowNumber","anchor":"rownumber","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Referência da API","url":"/pt-br/6.0/ref/"},{"docname":"ref/models/index","title":"Models","url":"/pt-br/6.0/ref/models/"}],"prev":{"docname":"ref/models/conditional-expressions","title":"Expressões Condicionais","url":"/pt-br/6.0/ref/models/conditional-expressions/"},"next":{"docname":"ref/paginator","title":"Paginator","url":"/pt-br/6.0/ref/paginator/"},"formats":{"html":"/pt-br/6.0/ref/models/database-functions/","markdown":"/pt-br/6.0/ref/models/database-functions.md","json":"/pt-br/6.0/ref/models/database-functions.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/models/database-functions.txt","official":"https://docs.djangoproject.com/pt-br/6.0/ref/models/database-functions/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}