{"title":"Fungsi Basisdata","version":"2.1","locale":"id","docname":"ref/models/database-functions","url":"/id/2.1/ref/models/database-functions/","canonical":"https://djangodocs.dev/id/2.1/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>Fungsi Basisdata<a class=\"heading-anchor\" href=\"#module-django.db.models.functions\"><span class=\"visually-hidden\">Link to this heading</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=\"/id/2.1/ref/models/expressions/\"><span class=\"doc\">expressions</span></a>, so they can be used and\ncombined with other expressions like <a class=\"reference internal\" href=\"/id/2.1/ref/models/querysets/#aggregation-functions\"><span class=\"std std-ref\">aggregate functions</span></a>.</p>\n<p>Kami akan menggunakan model berikut dalam contoh dari setiap fungsi:</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=\"w\"> </span><span class=\"nc\">Author</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">age</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">PositiveIntegerField</span><span class=\"p\">(</span><span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"n\">alias</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">,</span> <span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"n\">goes_by</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">,</span> <span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">blank</span><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\"><span class=\"pre\">null=True</span></code> for <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> since this\nallows the field to have two &quot;empty values&quot;, but it's important for the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Coalesce</span></code> example below.</p>\n<section id=\"comparison-and-conversion-functions\">\n<span id=\"comparison-functions\"></span><h2>Fungsi perbandingan dan perubahan<a class=\"heading-anchor\" href=\"#comparison-and-conversion-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"cast\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Cast</span></code><a class=\"heading-anchor\" href=\"#cast\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Cast</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Cast\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">expression</span></code> to be the one from <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code>.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">FloatField</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Cast</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Value</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">integer</span><span class=\"o\">=</span><span class=\"mi\">4</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">value</span> <span class=\"o\">=</span> <span class=\"n\">Value</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">as_float</span><span class=\"o\">=</span><span class=\"n\">Cast</span><span class=\"p\">(</span><span class=\"s1\">&#39;integer&#39;</span><span class=\"p\">,</span> <span class=\"n\">FloatField</span><span class=\"p\">()))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">as_float</span><span class=\"p\">)</span>\n<span class=\"go\">4.0</span>\n</code></pre></div>\n</section>\n<section id=\"coalesce\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Coalesce</span></code><a class=\"heading-anchor\" href=\"#coalesce\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Coalesce</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Coalesce\"><span class=\"visually-hidden\">Link to this definition</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>Contoh penggunaan:</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=\"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=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Sum</span><span class=\"p\">,</span> <span class=\"n\">Value</span> <span class=\"k\">as</span> <span class=\"n\">V</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Coalesce</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">,</span> <span class=\"n\">goes_by</span><span class=\"o\">=</span><span class=\"s1\">&#39;Maggie&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">screen_name</span><span class=\"o\">=</span><span class=\"n\">Coalesce</span><span class=\"p\">(</span><span class=\"s1\">&#39;alias&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;goes_by&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;name&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">screen_name</span><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=\"n\">aggregated</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">aggregate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">combined_age</span><span class=\"o\">=</span><span class=\"n\">Coalesce</span><span class=\"p\">(</span><span class=\"n\">Sum</span><span class=\"p\">(</span><span class=\"s1\">&#39;age&#39;</span><span class=\"p\">),</span> <span class=\"n\">V</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">)),</span>\n<span class=\"gp\">... </span>   <span class=\"n\">combined_age_default</span><span class=\"o\">=</span><span class=\"n\">Sum</span><span class=\"p\">(</span><span class=\"s1\">&#39;age&#39;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">aggregated</span><span class=\"p\">[</span><span class=\"s1\">&#39;combined_age&#39;</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><span class=\"n\">aggregated</span><span class=\"p\">[</span><span class=\"s1\">&#39;combined_age_default&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">None</span>\n</code></pre></div>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>A Python value passed to <code class=\"docutils literal notranslate\"><span class=\"pre\">Coalesce</span></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=\"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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DateTimeField</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Cast</span><span class=\"p\">,</span> <span class=\"n\">Coalesce</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">now</span> <span class=\"o\">=</span> <span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Coalesce</span><span class=\"p\">(</span><span class=\"s1\">&#39;updated&#39;</span><span class=\"p\">,</span> <span class=\"n\">Cast</span><span class=\"p\">(</span><span class=\"n\">now</span><span class=\"p\">,</span> <span class=\"n\">DateTimeField</span><span class=\"p\">()))</span>\n</code></pre></div>\n</aside>\n</section>\n<section id=\"greatest\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Greatest</span></code><a class=\"heading-anchor\" href=\"#greatest\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Greatest</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Greatest\"><span class=\"visually-hidden\">Link to this definition</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>Contoh penggunaan:</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=\"w\"> </span><span class=\"nc\">Blog</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">body</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">()</span>\n    <span class=\"n\">modified</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">(</span><span class=\"n\">auto_now</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Comment</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">body</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">()</span>\n    <span class=\"n\">modified</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">(</span><span class=\"n\">auto_now</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"n\">blog</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Blog</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n\n<span class=\"o\">&gt;&gt;&gt;</span> <span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Greatest</span>\n<span class=\"o\">&gt;&gt;&gt;</span> <span class=\"n\">blog</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">body</span><span class=\"o\">=</span><span class=\"s1\">&#39;Greatest is the best.&#39;</span><span class=\"p\">)</span>\n<span class=\"o\">&gt;&gt;&gt;</span> <span class=\"n\">comment</span> <span class=\"o\">=</span> <span class=\"n\">Comment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">body</span><span class=\"o\">=</span><span class=\"s1\">&#39;No, Least is better.&#39;</span><span class=\"p\">,</span> <span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">blog</span><span class=\"p\">)</span>\n<span class=\"o\">&gt;&gt;&gt;</span> <span class=\"n\">comments</span> <span class=\"o\">=</span> <span class=\"n\">Comment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">last_updated</span><span class=\"o\">=</span><span class=\"n\">Greatest</span><span class=\"p\">(</span><span class=\"s1\">&#39;modified&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;blog__modified&#39;</span><span class=\"p\">))</span>\n<span class=\"o\">&gt;&gt;&gt;</span> <span class=\"n\">annotated_comment</span> <span class=\"o\">=</span> <span class=\"n\">comments</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">annotated_comment.last_updated</span></code> akan menjadi paling baru dari <code class=\"docutils literal notranslate\"><span class=\"pre\">blog.modified</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">comment.modified</span></code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>The behavior of <code class=\"docutils literal notranslate\"><span class=\"pre\">Greatest</span></code> when one or more expression may be <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>\nvaries between databases:</p>\n<ul class=\"simple\">\n<li><p>PostgreSQL: <code class=\"docutils literal notranslate\"><span class=\"pre\">Greatest</span></code> will return the largest non-null expression,\nor <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> if all expressions are <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>.</p></li>\n<li><p>SQLite, Oracle, dan MySQL: Jika pernyataan apapun adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">Greatest</span></code> akan mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>.</p></li>\n</ul>\n<p>The PostgreSQL behavior can be emulated using <code class=\"docutils literal notranslate\"><span class=\"pre\">Coalesce</span></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\"><span class=\"pre\">Least</span></code><a class=\"heading-anchor\" href=\"#least\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Least</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Least\"><span class=\"visually-hidden\">Link to this definition</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\nleast value. Each argument must be of a similar type, so mixing text and numbers\nwill result in a database error.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>The behavior of <code class=\"docutils literal notranslate\"><span class=\"pre\">Least</span></code> when one or more expression may be <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>\nvaries between databases:</p>\n<ul class=\"simple\">\n<li><p>PostgreSQL: <code class=\"docutils literal notranslate\"><span class=\"pre\">Least</span></code> will return the smallest non-null expression,\nor <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> if all expressions are <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>.</p></li>\n<li><p>SQLite, Oracle, dan MySQL: Jika pernyataan apapun adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">Least</span></code> akan mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>.</p></li>\n</ul>\n<p>The PostgreSQL behavior can be emulated using <code class=\"docutils literal notranslate\"><span class=\"pre\">Coalesce</span></code> if you know\na sensible maximum value to provide as a default.</p>\n</aside>\n</section>\n</section>\n<section id=\"date-functions\">\n<span id=\"id1\"></span><h2>Fungsi tanggal<a class=\"heading-anchor\" href=\"#date-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Kami akan menggunakan model berikut dalam contoh dari setiap fungsi:</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=\"w\"> </span><span class=\"nc\">Experiment</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">start_datetime</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">()</span>\n    <span class=\"n\">start_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">(</span><span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"n\">start_time</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TimeField</span><span class=\"p\">(</span><span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"n\">end_datetime</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">(</span><span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"n\">end_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">(</span><span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"n\">end_time</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TimeField</span><span class=\"p\">(</span><span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">blank</span><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\"><span class=\"pre\">Extract</span></code><a class=\"heading-anchor\" href=\"#extract\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Extract</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lookup_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Extract\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Mengambil komponen tanggal sebagai angka.</p>\n<p>Takes an <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code> representing a <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField</span></code>, or <code class=\"docutils literal notranslate\"><span class=\"pre\">DurationField</span></code> and a <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code>, and returns the part\nof the date referenced by <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code> as an <code class=\"docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code>.\nDjango usually uses the databases' extract function, so you may use any\n<code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code> that your database supports. A <code class=\"docutils literal notranslate\"><span class=\"pre\">tzinfo</span></code> subclass, usually\nprovided by <code class=\"docutils literal notranslate\"><span class=\"pre\">pytz</span></code>, can be passed to extract a value in a specific timezone.</p>\n<aside class=\"version-note version-changed\" data-version=\"2.0\">\n<p class=\"version-note-title\">Changed in Django 2.0</p><p>Dukungan untuk <code class=\"docutils literal notranslate\"><span class=\"pre\">DurationField</span></code> telah ditambahkan.</p>\n</aside>\n<p>Diberikan datetime <code class=\"docutils literal notranslate\"><span class=\"pre\">2015-06-15</span> <span class=\"pre\">23:30:01.000321+00:00</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code> siap-pakai mengembalikan:</p>\n<ul class=\"simple\">\n<li><p>&quot;year&quot;: 2015</p></li>\n<li><p>&quot;quarter&quot;: 2</p></li>\n<li><p>&quot;month&quot;: 6</p></li>\n<li><p>&quot;day&quot;: 15</p></li>\n<li><p>&quot;week&quot;: 25</p></li>\n<li><p>&quot;week_day&quot;: 2</p></li>\n<li><p>&quot;hour&quot;: 23</p></li>\n<li><p>&quot;minute&quot;: 30</p></li>\n<li><p>&quot;second&quot;: 1</p></li>\n</ul>\n<p>If a different timezone like <code class=\"docutils literal notranslate\"><span class=\"pre\">Australia/Melbourne</span></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>&quot;day&quot;: 16</p></li>\n<li><p>&quot;week_day&quot;: 3</p></li>\n<li><p>&quot;hour&quot;: 9</p></li>\n</ul>\n<aside class=\"admonition-week-day-values admonition\">\n<p class=\"admonition-title\">Nilai-nilai <code class=\"docutils literal notranslate\"><span class=\"pre\">week_day</span></code></p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">week_day</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_type</span></code> is calculated differently from most\ndatabases and from Python's standard functions. This function will return\n<code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code> for Sunday, <code class=\"docutils literal notranslate\"><span class=\"pre\">2</span></code> for Monday, through <code class=\"docutils literal notranslate\"><span class=\"pre\">7</span></code> for Saturday.</p>\n<p>Perhitungan setara dalam Python adalah:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">dt</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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><span class=\"n\">dt</span><span class=\"o\">.</span><span class=\"n\">isoweekday</span><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\">\n<p class=\"admonition-title\">Nilai-nilai <code class=\"docutils literal notranslate\"><span class=\"pre\">week</span></code></p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">week</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_type</span></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\"><span class=\"pre\">lookup_name</span></code> above has a corresponding <code class=\"docutils literal notranslate\"><span class=\"pre\">Extract</span></code> subclass (listed\nbelow) that should typically be used instead of the more verbose equivalent,\ne.g. use <code class=\"docutils literal notranslate\"><span class=\"pre\">ExtractYear(...)</span></code> rather than <code class=\"docutils literal notranslate\"><span class=\"pre\">Extract(...,</span> <span class=\"pre\">lookup_name='year')</span></code>.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Extract</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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=\"n\">end</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start</span><span class=\"p\">,</span> <span class=\"n\">start_date</span><span class=\"o\">=</span><span class=\"n\">start</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">(),</span>\n<span class=\"gp\">... </span>   <span class=\"n\">end_datetime</span><span class=\"o\">=</span><span class=\"n\">end</span><span class=\"p\">,</span> <span class=\"n\">end_date</span><span class=\"o\">=</span><span class=\"n\">end</span><span class=\"o\">.</span><span class=\"n\">date</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><span class=\"n\">experiment</span> <span class=\"o\">=</span> <span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">start_year</span><span class=\"o\">=</span><span class=\"n\">Extract</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;year&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">experiment</span><span class=\"o\">.</span><span class=\"n\">start_year</span>\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><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">start_datetime__year</span><span class=\"o\">=</span><span class=\"n\">Extract</span><span class=\"p\">(</span><span class=\"s1\">&#39;end_datetime&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;year&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">count</span><span class=\"p\">()</span>\n<span class=\"go\">1</span>\n</code></pre></div>\n<section id=\"datefield-extracts\">\n<h4>Kutipan <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code><a class=\"heading-anchor\" href=\"#datefield-extracts\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractYear</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractYear\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'year'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractMonth</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractMonth\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'month'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractDay</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractDay\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'day'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractWeekDay</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractWeekDay\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'week_day'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractWeek</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractWeek\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'week'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractQuarter</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractQuarter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"2.0\">\n<p class=\"version-note-title\">New in Django 2.0</p></aside>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'quarter'</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\"><span class=\"pre\">Extract('date_field',</span> <span class=\"pre\">lookup_name)</span></code>. Each\nclass is also a <code class=\"docutils literal notranslate\"><span class=\"pre\">Transform</span></code> registered on <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>\nas <code class=\"docutils literal notranslate\"><span class=\"pre\">__(lookup_name)</span></code>, e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">__year</span></code>.</p>\n<p>Since <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code>s don't have a time component, only <code class=\"docutils literal notranslate\"><span class=\"pre\">Extract</span></code> subclasses\nthat deal with date-parts can be used with <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code>:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">ExtractDay</span><span class=\"p\">,</span> <span class=\"n\">ExtractMonth</span><span class=\"p\">,</span> <span class=\"n\">ExtractQuarter</span><span class=\"p\">,</span> <span class=\"n\">ExtractWeek</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">ExtractWeekDay</span><span class=\"p\">,</span> <span class=\"n\">ExtractYear</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start_2015</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">end_2015</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start_2015</span><span class=\"p\">,</span> <span class=\"n\">start_date</span><span class=\"o\">=</span><span class=\"n\">start_2015</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">(),</span>\n<span class=\"gp\">... </span>   <span class=\"n\">end_datetime</span><span class=\"o\">=</span><span class=\"n\">end_2015</span><span class=\"p\">,</span> <span class=\"n\">end_date</span><span class=\"o\">=</span><span class=\"n\">end_2015</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">year</span><span class=\"o\">=</span><span class=\"n\">ExtractYear</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_date&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">quarter</span><span class=\"o\">=</span><span class=\"n\">ExtractQuarter</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_date&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">month</span><span class=\"o\">=</span><span class=\"n\">ExtractMonth</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_date&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">week</span><span class=\"o\">=</span><span class=\"n\">ExtractWeek</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_date&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">day</span><span class=\"o\">=</span><span class=\"n\">ExtractDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_date&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">weekday</span><span class=\"o\">=</span><span class=\"n\">ExtractWeekDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_date&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;year&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;quarter&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;month&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;week&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;day&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;weekday&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">end_date__year</span><span class=\"o\">=</span><span class=\"n\">ExtractYear</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_date&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">{&#39;year&#39;: 2015, &#39;quarter&#39;: 2, &#39;month&#39;: 6, &#39;week&#39;: 25, &#39;day&#39;: 15, &#39;weekday&#39;: 2}</span>\n</code></pre></div>\n</section>\n<section id=\"datetimefield-extracts\">\n<h4>Kutipan <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code><a class=\"heading-anchor\" href=\"#datetimefield-extracts\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>In addition to the following, all extracts for <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> listed above may\nalso be used on <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractHour</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractHour\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'hour'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractMinute</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractMinute\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'minute'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExtractSecond</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.ExtractSecond\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'second'</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\"><span class=\"pre\">Extract('datetime_field',</span> <span class=\"pre\">lookup_name)</span></code>.\nEach class is also a <code class=\"docutils literal notranslate\"><span class=\"pre\">Transform</span></code> registered on <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code> as\n<code class=\"docutils literal notranslate\"><span class=\"pre\">__(lookup_name)</span></code>, e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">__minute</span></code>.</p>\n<p>Contoh-contoh <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">ExtractDay</span><span class=\"p\">,</span> <span class=\"n\">ExtractHour</span><span class=\"p\">,</span> <span class=\"n\">ExtractMinute</span><span class=\"p\">,</span> <span class=\"n\">ExtractMonth</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">ExtractQuarter</span><span class=\"p\">,</span> <span class=\"n\">ExtractSecond</span><span class=\"p\">,</span> <span class=\"n\">ExtractWeek</span><span class=\"p\">,</span> <span class=\"n\">ExtractWeekDay</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">ExtractYear</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start_2015</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">end_2015</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start_2015</span><span class=\"p\">,</span> <span class=\"n\">start_date</span><span class=\"o\">=</span><span class=\"n\">start_2015</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">(),</span>\n<span class=\"gp\">... </span>   <span class=\"n\">end_datetime</span><span class=\"o\">=</span><span class=\"n\">end_2015</span><span class=\"p\">,</span> <span class=\"n\">end_date</span><span class=\"o\">=</span><span class=\"n\">end_2015</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">year</span><span class=\"o\">=</span><span class=\"n\">ExtractYear</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">quarter</span><span class=\"o\">=</span><span class=\"n\">ExtractQuarter</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">month</span><span class=\"o\">=</span><span class=\"n\">ExtractMonth</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">week</span><span class=\"o\">=</span><span class=\"n\">ExtractWeek</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">day</span><span class=\"o\">=</span><span class=\"n\">ExtractDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">weekday</span><span class=\"o\">=</span><span class=\"n\">ExtractWeekDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">hour</span><span class=\"o\">=</span><span class=\"n\">ExtractHour</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">minute</span><span class=\"o\">=</span><span class=\"n\">ExtractMinute</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">second</span><span class=\"o\">=</span><span class=\"n\">ExtractSecond</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"s1\">&#39;year&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;month&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;week&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;day&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;weekday&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;hour&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;minute&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;second&#39;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">end_datetime__year</span><span class=\"o\">=</span><span class=\"n\">ExtractYear</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">))</span>\n<span class=\"go\">{&#39;year&#39;: 2015, &#39;quarter&#39;: 2, &#39;month&#39;: 6, &#39;week&#39;: 25, &#39;day&#39;: 15, &#39;weekday&#39;: 2,</span>\n<span class=\"go\"> &#39;hour&#39;: 23, &#39;minute&#39;: 30, &#39;second&#39;: 1}</span>\n</code></pre></div>\n<p>When <a class=\"reference internal\" href=\"/id/2.1/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></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=\"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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">pytz</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">melb</span> <span class=\"o\">=</span> <span class=\"n\">pytz</span><span class=\"o\">.</span><span class=\"n\">timezone</span><span class=\"p\">(</span><span class=\"s1\">&#39;Australia/Melbourne&#39;</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> <span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">override</span><span class=\"p\">(</span><span class=\"n\">melb</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>   <span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>       <span class=\"n\">day</span><span class=\"o\">=</span><span class=\"n\">ExtractDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>       <span class=\"n\">weekday</span><span class=\"o\">=</span><span class=\"n\">ExtractWeekDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>       <span class=\"n\">hour</span><span class=\"o\">=</span><span class=\"n\">ExtractHour</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>   <span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;day&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;weekday&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;hour&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>       <span class=\"n\">end_datetime__year</span><span class=\"o\">=</span><span class=\"n\">ExtractYear</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</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;hour&#39;: 9}</span>\n</code></pre></div>\n<p>Explicitly passing the timezone to the <code class=\"docutils literal notranslate\"><span class=\"pre\">Extract</span></code> function behaves in the same\nway, and takes priority over an active timezone:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">pytz</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">melb</span> <span class=\"o\">=</span> <span class=\"n\">pytz</span><span class=\"o\">.</span><span class=\"n\">timezone</span><span class=\"p\">(</span><span class=\"s1\">&#39;Australia/Melbourne&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">day</span><span class=\"o\">=</span><span class=\"n\">ExtractDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">melb</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">weekday</span><span class=\"o\">=</span><span class=\"n\">ExtractWeekDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">melb</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">hour</span><span class=\"o\">=</span><span class=\"n\">ExtractHour</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">melb</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;day&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;weekday&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;hour&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">end_datetime__year</span><span class=\"o\">=</span><span class=\"n\">ExtractYear</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</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;hour&#39;: 9}</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"now\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Now</span></code><a class=\"heading-anchor\" href=\"#now\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Now</span></span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Now\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">CURRENT_TIMESTAMP</span></code>.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Now</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Article</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">published__lte</span><span class=\"o\">=</span><span class=\"n\">Now</span><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\">\n<p class=\"admonition-title\">Pertimbangan PostgreSQL</p>\n<p>On PostgreSQL, the SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">CURRENT_TIMESTAMP</span></code> returns the time that the\ncurrent transaction started. Therefore for cross-database compatibility,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Now()</span></code> uses <code class=\"docutils literal notranslate\"><span class=\"pre\">STATEMENT_TIMESTAMP</span></code> instead. If you need the transaction\ntimestamp, use <a class=\"reference internal\" href=\"/id/2.1/ref/contrib/postgres/functions/#django.contrib.postgres.functions.TransactionNow\" title=\"django.contrib.postgres.functions.TransactionNow\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.functions.TransactionNow</span></code></a>.</p>\n</aside>\n</section>\n<section id=\"trunc\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc</span></code><a class=\"heading-anchor\" href=\"#trunc\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Trunc</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">kind</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Trunc\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Memotong tanggal sampai pada komponen penting.</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\"><span class=\"pre\">Trunc</span></code> (and its subclasses) can be useful to\nfilter or aggregate your data. For example, you can use <code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc</span></code> to calculate\nthe number of sales per day.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc</span></code> takes a single <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code>, representing a <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField</span></code>, or <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>, a <code class=\"docutils literal notranslate\"><span class=\"pre\">kind</span></code> representing a date or time\npart, and an <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code> that's either <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField()</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField()</span></code>, or <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField()</span></code>. It returns a datetime, date, or time\ndepending on <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code>, with fields up to <code class=\"docutils literal notranslate\"><span class=\"pre\">kind</span></code> set to their minimum\nvalue. If <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code> is omitted, it will default to the <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code>\nof <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code>. A <code class=\"docutils literal notranslate\"><span class=\"pre\">tzinfo</span></code> subclass, usually provided by <code class=\"docutils literal notranslate\"><span class=\"pre\">pytz</span></code>, can be\npassed to truncate a value in a specific timezone.</p>\n<p>Diberikan datetime <code class=\"docutils literal notranslate\"><span class=\"pre\">2015-06-15</span> <span class=\"pre\">14:30:50.000321+00:00</span></code>, kembalian <code class=\"docutils literal notranslate\"><span class=\"pre\">kind</span></code> siap-pakai:</p>\n<ul class=\"simple\">\n<li><p>&quot;year&quot;: 2015-01-01 00:00:00+00:00</p></li>\n<li><p>&quot;quarter&quot;: 2015-04-01 00:00:00+00:00</p></li>\n<li><p>&quot;month&quot;: 2015-06-01 00:00:00+00:00</p></li>\n<li><p>&quot;week&quot;: 2015-06-15 00:00:00+00:00</p></li>\n<li><p>&quot;day&quot;: 2015-06-15 00:00:00+00:00</p></li>\n<li><p>&quot;hour&quot;: 2015-06-15 14:00:00+00:00</p></li>\n<li><p>&quot;minute&quot;: 2015-06-15 14:30:00+00:00</p></li>\n<li><p>&quot;second&quot;: 2015-06-15 14:30:50+00:00</p></li>\n</ul>\n<p>If a different timezone like <code class=\"docutils literal notranslate\"><span class=\"pre\">Australia/Melbourne</span></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>&quot;year&quot;: 2015-01-01 00:00:00+11:00</p></li>\n<li><p>&quot;quarter&quot;: 2015-04-01 00:00:00+10:00</p></li>\n<li><p>&quot;month&quot;: 2015-06-01 00:00:00+10:00</p></li>\n<li><p>&quot;week&quot;: 2015-06-16 00:00:00+10:00</p></li>\n<li><p>&quot;day&quot;: 2015-06-16 00:00:00+10:00</p></li>\n<li><p>&quot;hour&quot;: 2015-06-16 00:00:00+10:00</p></li>\n<li><p>&quot;minute&quot;: 2015-06-16 00:30:00+10:00</p></li>\n<li><p>&quot;second&quot;: 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\"><span class=\"pre\">kind</span></code> above has a corresponding <code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc</span></code> subclass (listed below) that\nshould typically be used instead of the more verbose equivalent,\ne.g. use <code class=\"docutils literal notranslate\"><span class=\"pre\">TruncYear(...)</span></code> rather than <code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc(...,</span> <span class=\"pre\">kind='year')</span></code>.</p>\n<p>The subclasses are all defined as transforms, but they aren't registered with\nany fields, because the obvious lookup names are already reserved by the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Extract</span></code> subclasses.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Count</span><span class=\"p\">,</span> <span class=\"n\">DateTimeField</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Trunc</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">datetime</span><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><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">datetime</span><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><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">datetime</span><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><span class=\"n\">experiments_per_day</span> <span class=\"o\">=</span> <span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">start_day</span><span class=\"o\">=</span><span class=\"n\">Trunc</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;day&#39;</span><span class=\"p\">,</span> <span class=\"n\">output_field</span><span class=\"o\">=</span><span class=\"n\">DateTimeField</span><span class=\"p\">())</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_day&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">experiments</span><span class=\"o\">=</span><span class=\"n\">Count</span><span class=\"p\">(</span><span class=\"s1\">&#39;id&#39;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">exp</span> <span class=\"ow\">in</span> <span class=\"n\">experiments_per_day</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;start_day&#39;</span><span class=\"p\">],</span> <span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;experiments&#39;</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><span class=\"n\">experiments</span> <span class=\"o\">=</span> <span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">start_day</span><span class=\"o\">=</span><span class=\"n\">Trunc</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;day&#39;</span><span class=\"p\">,</span> <span class=\"n\">output_field</span><span class=\"o\">=</span><span class=\"n\">DateTimeField</span><span class=\"p\">())</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">start_day</span><span class=\"o\">=</span><span class=\"n\">datetime</span><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> <span class=\"n\">exp</span> <span class=\"ow\">in</span> <span class=\"n\">experiments</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">start_datetime</span><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>Pemotongan <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code><a class=\"heading-anchor\" href=\"#datefield-truncation\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncYear</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncYear\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'year'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncMonth</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncMonth\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'month'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncWeek</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncWeek\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Memotong ke tengah malam pada Senin dari minggu.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'week'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncQuarter</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncQuarter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"2.0\">\n<p class=\"version-note-title\">New in Django 2.0</p></aside>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\">\n<span class=\"sig-name descname\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'quarter'</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc('date_field',</span> <span class=\"pre\">kind)</span></code>. They truncate\nall parts of the date up to <code class=\"docutils literal notranslate\"><span class=\"pre\">kind</span></code> which allows grouping or filtering dates\nwith less precision. <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code> can have an <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code> of either\n<code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>.</p>\n<p>Since <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code>s don't have a time component, only <code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc</span></code> subclasses\nthat deal with date-parts can be used with <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code>:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Count</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">TruncMonth</span><span class=\"p\">,</span> <span class=\"n\">TruncYear</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start1</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start2</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start3</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start1</span><span class=\"p\">,</span> <span class=\"n\">start_date</span><span class=\"o\">=</span><span class=\"n\">start1</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start2</span><span class=\"p\">,</span> <span class=\"n\">start_date</span><span class=\"o\">=</span><span class=\"n\">start2</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start3</span><span class=\"p\">,</span> <span class=\"n\">start_date</span><span class=\"o\">=</span><span class=\"n\">start3</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">experiments_per_year</span> <span class=\"o\">=</span> <span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">year</span><span class=\"o\">=</span><span class=\"n\">TruncYear</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_date&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;year&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">experiments</span><span class=\"o\">=</span><span class=\"n\">Count</span><span class=\"p\">(</span><span class=\"s1\">&#39;id&#39;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">exp</span> <span class=\"ow\">in</span> <span class=\"n\">experiments_per_year</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;year&#39;</span><span class=\"p\">],</span> <span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;experiments&#39;</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=\"w\"> </span><span class=\"nn\">pytz</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">melb</span> <span class=\"o\">=</span> <span class=\"n\">pytz</span><span class=\"o\">.</span><span class=\"n\">timezone</span><span class=\"p\">(</span><span class=\"s1\">&#39;Australia/Melbourne&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">experiments_per_month</span> <span class=\"o\">=</span> <span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">month</span><span class=\"o\">=</span><span class=\"n\">TruncMonth</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">melb</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;month&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">experiments</span><span class=\"o\">=</span><span class=\"n\">Count</span><span class=\"p\">(</span><span class=\"s1\">&#39;id&#39;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">exp</span> <span class=\"ow\">in</span> <span class=\"n\">experiments_per_month</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;month&#39;</span><span class=\"p\">],</span> <span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;experiments&#39;</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>Pemotongan <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code><a class=\"heading-anchor\" href=\"#datetimefield-truncation\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncDate</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncDate\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'date'</span></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\"><span class=\"pre\">output_field</span> <span class=\"pre\">=</span> <span class=\"pre\">DateField()</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">TruncDate</span></code> casts <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></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\"><span class=\"pre\">DateTimeField</span></code> as\n<code class=\"docutils literal notranslate\"><span class=\"pre\">__date</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncTime</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncTime\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">lookup_name</span> <span class=\"pre\">=</span> <span class=\"pre\">'time'</span></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\"><span class=\"pre\">output_field</span> <span class=\"pre\">=</span> <span class=\"pre\">TimeField()</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">TruncTime</span></code> casts <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></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\"><span class=\"pre\">DateTimeField</span></code> as\n<code class=\"docutils literal notranslate\"><span class=\"pre\">__time</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncDay</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncDay\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'day'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncHour</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncHour\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'hour'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncMinute</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncMinute\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'minute'</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncSecond</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.TruncSecond\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'second'</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc('datetime_field',</span> <span class=\"pre\">kind)</span></code>. They\ntruncate all parts of the date up to <code class=\"docutils literal notranslate\"><span class=\"pre\">kind</span></code> and allow grouping or filtering\ndatetimes with less precision. <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code> must have an <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code> of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">date</span><span class=\"p\">,</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Count</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">TruncDate</span><span class=\"p\">,</span> <span class=\"n\">TruncDay</span><span class=\"p\">,</span> <span class=\"n\">TruncHour</span><span class=\"p\">,</span> <span class=\"n\">TruncMinute</span><span class=\"p\">,</span> <span class=\"n\">TruncSecond</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">pytz</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start1</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start1</span><span class=\"p\">,</span> <span class=\"n\">start_date</span><span class=\"o\">=</span><span class=\"n\">start1</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">melb</span> <span class=\"o\">=</span> <span class=\"n\">pytz</span><span class=\"o\">.</span><span class=\"n\">timezone</span><span class=\"p\">(</span><span class=\"s1\">&#39;Australia/Melbourne&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">date</span><span class=\"o\">=</span><span class=\"n\">TruncDate</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">day</span><span class=\"o\">=</span><span class=\"n\">TruncDay</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">melb</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">hour</span><span class=\"o\">=</span><span class=\"n\">TruncHour</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">melb</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">minute</span><span class=\"o\">=</span><span class=\"n\">TruncMinute</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">second</span><span class=\"o\">=</span><span class=\"n\">TruncSecond</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;date&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;day&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;hour&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;minute&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;second&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">get</span><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=&lt;DstTzInfo &#39;Australia/Melbourne&#39; AEST+10:00:00 STD&gt;),</span>\n<span class=\"go\"> &#39;hour&#39;: datetime.datetime(2014, 6, 16, 0, 0, tzinfo=&lt;DstTzInfo &#39;Australia/Melbourne&#39; AEST+10:00:00 STD&gt;),</span>\n<span class=\"go\"> &#39;minute&#39;: &#39;minute&#39;: datetime.datetime(2014, 6, 15, 14, 30, tzinfo=&lt;UTC&gt;),</span>\n<span class=\"go\"> &#39;second&#39;: datetime.datetime(2014, 6, 15, 14, 30, 50, tzinfo=&lt;UTC&gt;)</span>\n<span class=\"go\">}</span>\n</code></pre></div>\n</section>\n<section id=\"timefield-truncation\">\n<h4>Pemotongan <code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField</span></code><a class=\"heading-anchor\" href=\"#timefield-truncation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"id0\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncHour</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#id0\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'hour'</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"id2\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncMinute</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#id2\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'minute'</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"id3\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TruncSecond</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">output_field</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tzinfo</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#id3\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">kind</span> <span class=\"pre\">=</span> <span class=\"pre\">'second'</span></span></dt>\n<dd></dd></dl>\n\n</dd></dl>\n\n<p>These are logically equivalent to <code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc('time_field',</span> <span class=\"pre\">kind)</span></code>. They truncate\nall parts of the time up to <code class=\"docutils literal notranslate\"><span class=\"pre\">kind</span></code> which allows grouping or filtering times\nwith less precision. <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code> can have an <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code> of either\n<code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>.</p>\n<p>Since <code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField</span></code>s don't have a date component, only <code class=\"docutils literal notranslate\"><span class=\"pre\">Trunc</span></code> subclasses\nthat deal with time-parts can be used with <code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField</span></code>:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Count</span><span class=\"p\">,</span> <span class=\"n\">TimeField</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">TruncHour</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start1</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start2</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">start3</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><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> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">utc</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start1</span><span class=\"p\">,</span> <span class=\"n\">start_time</span><span class=\"o\">=</span><span class=\"n\">start1</span><span class=\"o\">.</span><span class=\"n\">time</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start2</span><span class=\"p\">,</span> <span class=\"n\">start_time</span><span class=\"o\">=</span><span class=\"n\">start2</span><span class=\"o\">.</span><span class=\"n\">time</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">start_datetime</span><span class=\"o\">=</span><span class=\"n\">start3</span><span class=\"p\">,</span> <span class=\"n\">start_time</span><span class=\"o\">=</span><span class=\"n\">start3</span><span class=\"o\">.</span><span class=\"n\">time</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">experiments_per_hour</span> <span class=\"o\">=</span> <span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">hour</span><span class=\"o\">=</span><span class=\"n\">TruncHour</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"n\">output_field</span><span class=\"o\">=</span><span class=\"n\">TimeField</span><span class=\"p\">()),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;hour&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">experiments</span><span class=\"o\">=</span><span class=\"n\">Count</span><span class=\"p\">(</span><span class=\"s1\">&#39;id&#39;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">exp</span> <span class=\"ow\">in</span> <span class=\"n\">experiments_per_hour</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;hour&#39;</span><span class=\"p\">],</span> <span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;experiments&#39;</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=\"w\"> </span><span class=\"nn\">pytz</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">melb</span> <span class=\"o\">=</span> <span class=\"n\">pytz</span><span class=\"o\">.</span><span class=\"n\">timezone</span><span class=\"p\">(</span><span class=\"s1\">&#39;Australia/Melbourne&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">experiments_per_hour</span> <span class=\"o\">=</span> <span class=\"n\">Experiment</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">hour</span><span class=\"o\">=</span><span class=\"n\">TruncHour</span><span class=\"p\">(</span><span class=\"s1\">&#39;start_datetime&#39;</span><span class=\"p\">,</span> <span class=\"n\">tzinfo</span><span class=\"o\">=</span><span class=\"n\">melb</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;hour&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">experiments</span><span class=\"o\">=</span><span class=\"n\">Count</span><span class=\"p\">(</span><span class=\"s1\">&#39;id&#39;</span><span class=\"p\">))</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">exp</span> <span class=\"ow\">in</span> <span class=\"n\">experiments_per_hour</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;hour&#39;</span><span class=\"p\">],</span> <span class=\"n\">exp</span><span class=\"p\">[</span><span class=\"s1\">&#39;experiments&#39;</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=\"text-functions\">\n<span id=\"id4\"></span><h2>Fungsi teks<a class=\"heading-anchor\" href=\"#text-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"chr\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Chr</span></code><a class=\"heading-anchor\" href=\"#chr\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Chr</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Chr\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\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=\"(di Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">chr()</span></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\"><span class=\"pre\">Length</span></code></a>, it can be registered as a transform on <code class=\"docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code>.\nThe default lookup name is <code class=\"docutils literal notranslate\"><span class=\"pre\">chr</span></code>.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Chr</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name__startswith</span><span class=\"o\">=</span><span class=\"n\">Chr</span><span class=\"p\">(</span><span class=\"nb\">ord</span><span class=\"p\">(</span><span class=\"s1\">&#39;M&#39;</span><span class=\"p\">)))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">name</span><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\"><span class=\"pre\">Concat</span></code><a class=\"heading-anchor\" href=\"#concat\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Concat</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Concat\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">TextField()</span></code> with a <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField()</span></code>, then be sure to tell\nDjango that the <code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code> should be a <code class=\"docutils literal notranslate\"><span class=\"pre\">TextField()</span></code>. Specifying an\n<code class=\"docutils literal notranslate\"><span class=\"pre\">output_field</span></code> is also required when concatenating a <code class=\"docutils literal notranslate\"><span class=\"pre\">Value</span></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>Contoh penggunaan:</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=\"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=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">CharField</span><span class=\"p\">,</span> <span class=\"n\">Value</span> <span class=\"k\">as</span> <span class=\"n\">V</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Concat</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">,</span> <span class=\"n\">goes_by</span><span class=\"o\">=</span><span class=\"s1\">&#39;Maggie&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">screen_name</span><span class=\"o\">=</span><span class=\"n\">Concat</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>        <span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"n\">V</span><span class=\"p\">(</span><span class=\"s1\">&#39; (&#39;</span><span class=\"p\">),</span> <span class=\"s1\">&#39;goes_by&#39;</span><span class=\"p\">,</span> <span class=\"n\">V</span><span class=\"p\">(</span><span class=\"s1\">&#39;)&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        <span class=\"n\">output_field</span><span class=\"o\">=</span><span class=\"n\">CharField</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><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">screen_name</span><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\"><span class=\"pre\">Left</span></code><a class=\"heading-anchor\" href=\"#left\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Left</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">length</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Left\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code> karakter pertama dari bidang teks atau pernyataan yang diberikan.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Left</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">first_initial</span><span class=\"o\">=</span><span class=\"n\">Left</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">first_initial</span><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\"><span class=\"pre\">Length</span></code><a class=\"heading-anchor\" href=\"#length\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Length</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Length\"><span class=\"visually-hidden\">Link to this definition</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>Contoh penggunaan:</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=\"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=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Length</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">name_length</span><span class=\"o\">=</span><span class=\"n\">Length</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>   <span class=\"n\">goes_by_length</span><span class=\"o\">=</span><span class=\"n\">Length</span><span class=\"p\">(</span><span class=\"s1\">&#39;goes_by&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">name_length</span><span class=\"p\">,</span> <span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">goes_by_length</span><span class=\"p\">)</span>\n<span class=\"go\">(14, None)</span>\n</code></pre></div>\n<p>Itu dapat juga didaftarkan sebagai sebuah perubahan. Sebagai contoh:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">CharField</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Length</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">CharField</span><span class=\"o\">.</span><span class=\"n\">register_lookup</span><span class=\"p\">(</span><span class=\"n\">Length</span><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><span class=\"n\">authors</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name__length__gt</span><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\"><span class=\"pre\">Lower</span></code><a class=\"heading-anchor\" href=\"#lower\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Lower</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Lower\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Menerima bidang teks tunggal atau pernyataan dan mengembalikan perwakilan huruf kecil.</p>\n<p>Itu dapat juga didaftarkan sebagai sebuah perubahan seperti digambarkan dalam <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\"><span class=\"pre\">Length</span></code></a>.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Lower</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">name_lower</span><span class=\"o\">=</span><span class=\"n\">Lower</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">name_lower</span><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\"><span class=\"pre\">LPad</span></code><a class=\"heading-anchor\" href=\"#lpad\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LPad</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">length</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fill_text</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">Value('</span> <span class=\"pre\">')</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.LPad\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Returns the value of the given text field or expression padded on the left side\nwith <code class=\"docutils literal notranslate\"><span class=\"pre\">fill_text</span></code> so that the resulting value is <code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code> characters long.\nThe default <code class=\"docutils literal notranslate\"><span class=\"pre\">fill_text</span></code> is a space.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Value</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">LPad</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;John&#39;</span><span class=\"p\">,</span> <span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"s1\">&#39;j&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"n\">LPad</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"n\">Value</span><span class=\"p\">(</span><span class=\"s1\">&#39;abc&#39;</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><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"s1\">&#39;j&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">name</span><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\"><span class=\"pre\">LTrim</span></code><a class=\"heading-anchor\" href=\"#ltrim\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LTrim</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.LTrim\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Mirip pada <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\"><span class=\"pre\">Trim</span></code></a>, tetapi hanya memindahkan spasi awal.</p>\n</section>\n<section id=\"ord\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Ord</span></code><a class=\"heading-anchor\" href=\"#ord\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Ord</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Ord\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\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=\"(di Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">ord()</span></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\"><span class=\"pre\">Length</span></code></a>.\nThe default lookup name is <code class=\"docutils literal notranslate\"><span class=\"pre\">ord</span></code>.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Ord</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">name_code_point</span><span class=\"o\">=</span><span class=\"n\">Ord</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">name_code_point</span><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\"><span class=\"pre\">Repeat</span></code><a class=\"heading-anchor\" href=\"#repeat\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Repeat</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">number</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Repeat\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Mengembalikan nilai dari bidang teks diberikan atau pernyataan diulang <code class=\"docutils literal notranslate\"><span class=\"pre\">number</span></code> kali.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Repeat</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;John&#39;</span><span class=\"p\">,</span> <span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"s1\">&#39;j&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"n\">Repeat</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</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><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"s1\">&#39;j&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">name</span><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\"><span class=\"pre\">Replace</span></code><a class=\"heading-anchor\" href=\"#replace\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Replace</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">text</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">replacement</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">Value('')</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Replace\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Replaces all occurrences of <code class=\"docutils literal notranslate\"><span class=\"pre\">text</span></code> with <code class=\"docutils literal notranslate\"><span class=\"pre\">replacement</span></code> in <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code>.\nThe default replacement text is the empty string. The arguments to the function\nare case-sensitive.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Value</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Replace</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Johnson&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"n\">Replace</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"n\">Value</span><span class=\"p\">(</span><span class=\"s1\">&#39;Margaret&#39;</span><span class=\"p\">),</span> <span class=\"n\">Value</span><span class=\"p\">(</span><span class=\"s1\">&#39;Margareth&#39;</span><span class=\"p\">)))</span>\n<span class=\"go\">2</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</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=\"right\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Right</span></code><a class=\"heading-anchor\" href=\"#right\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Right</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">length</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Right\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code> karakter terakhir dari bidang teks atau pernyataan yang diberikan.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Right</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">last_letter</span><span class=\"o\">=</span><span class=\"n\">Right</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">last_letter</span><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\"><span class=\"pre\">RPad</span></code><a class=\"heading-anchor\" href=\"#rpad\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RPad</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">length</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fill_text</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">Value('</span> <span class=\"pre\">')</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.RPad\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Mirip pada <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\"><span class=\"pre\">LPad</span></code></a>, tetapi menambahkan pada sisi kanan.</p>\n</section>\n<section id=\"rtrim\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RTrim</span></code><a class=\"heading-anchor\" href=\"#rtrim\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RTrim</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.RTrim\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Mirip pada <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\"><span class=\"pre\">Trim</span></code></a>, namum memindahkan hanya spasi tambahan.</p>\n</section>\n<section id=\"strindex\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">StrIndex</span></code><a class=\"heading-anchor\" href=\"#strindex\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">StrIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">string</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">substring</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.StrIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.0\">\n<p class=\"version-note-title\">New in Django 2.0</p></aside>\n<p>Returns a positive integer corresponding to the 1-indexed position of the first\noccurrence of <code class=\"docutils literal notranslate\"><span class=\"pre\">substring</span></code> inside <code class=\"docutils literal notranslate\"><span class=\"pre\">string</span></code>, or 0 if <code class=\"docutils literal notranslate\"><span class=\"pre\">substring</span></code> is not\nfound.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Value</span> <span class=\"k\">as</span> <span class=\"n\">V</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">StrIndex</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Smith, Margaret&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Jackson&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Jackson&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">smith_index</span><span class=\"o\">=</span><span class=\"n\">StrIndex</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"n\">V</span><span class=\"p\">(</span><span class=\"s1\">&#39;Smith&#39;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">smith_index</span>\n<span class=\"go\">0</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">authors</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>   <span class=\"n\">smith_index</span><span class=\"o\">=</span><span class=\"n\">StrIndex</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"n\">V</span><span class=\"p\">(</span><span class=\"s1\">&#39;Smith&#39;</span><span class=\"p\">))</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">smith_index__gt</span><span class=\"o\">=</span><span class=\"mi\">0</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\">Peringatan</p>\n<p>In MySQL, a database table's <a class=\"reference internal\" href=\"/id/2.1/ref/databases/#mysql-collation\"><span class=\"std std-ref\">collation</span></a> determines\nwhether string comparisons (such as the <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">substring</span></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\"><span class=\"pre\">Substr</span></code><a class=\"heading-anchor\" href=\"#substr\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Substr</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">pos</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">length</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Substr\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">length</span></code> from the field or expression starting\nat position <code class=\"docutils literal notranslate\"><span class=\"pre\">pos</span></code>. The position is 1-indexed, so the position must be greater\nthan 0. If <code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, then the rest of the string will be returned.</p>\n<p>Contoh penggunaan:</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=\"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=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Lower</span><span class=\"p\">,</span> <span class=\"n\">Substr</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"n\">Lower</span><span class=\"p\">(</span><span class=\"n\">Substr</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</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><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">alias</span><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\"><span class=\"pre\">Trim</span></code><a class=\"heading-anchor\" href=\"#trim\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Trim</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Trim\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"2.1\">\n<p class=\"version-note-title\">New in Django 2.1</p></aside>\n<p>Returns the value of the given text field or expression with leading and\ntrailing spaces removed.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Trim</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;  John  &#39;</span><span class=\"p\">,</span> <span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"s1\">&#39;j&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"n\">Trim</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</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><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"s1\">&#39;j&#39;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">name</span><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\"><span class=\"pre\">Upper</span></code><a class=\"heading-anchor\" href=\"#upper\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Upper</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Upper\"><span class=\"visually-hidden\">Link to this definition</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>Itu dapat juga didaftarkan sebagai sebuah perubahan seperti digambarkan dalam <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\"><span class=\"pre\">Length</span></code></a>.</p>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Upper</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Margaret Smith&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">name_upper</span><span class=\"o\">=</span><span class=\"n\">Upper</span><span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">name_upper</span><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>Fungsi Windows<a class=\"heading-anchor\" href=\"#window-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<aside class=\"version-note version-added\" data-version=\"2.0\">\n<p class=\"version-note-title\">New in Django 2.0</p></aside>\n<p>There are a number of functions to use in a\n<a class=\"reference internal\" href=\"/id/2.1/ref/models/expressions/#django.db.models.expressions.Window\" title=\"django.db.models.expressions.Window\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Window</span></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\"><span class=\"pre\">Ntile</span></code></a> of some rows.</p>\n<section id=\"cumedist\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CumeDist</span></code><a class=\"heading-anchor\" href=\"#cumedist\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">CumeDist</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.CumeDist\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">DenseRank</span></code><a class=\"heading-anchor\" href=\"#denserank\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DenseRank</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.DenseRank\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">Rank</span></code></a> but does not have gaps.</p>\n</section>\n<section id=\"firstvalue\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FirstValue</span></code><a class=\"heading-anchor\" href=\"#firstvalue\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">FirstValue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.FirstValue\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">None</span></code> if no such value exists.</p>\n</section>\n<section id=\"lag\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Lag</span></code><a class=\"heading-anchor\" href=\"#lag\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Lag</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">offset</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">default</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Lag\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Menghitung nilai offset oleh <code class=\"docutils literal notranslate\"><span class=\"pre\">offset</span></code>, dan jika tidak ada baris yang ada disana, mengembalikan <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> must have the same type as the <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code>, however, this is\nonly validated by the database and not in Python.</p>\n</section>\n<section id=\"lastvalue\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LastValue</span></code><a class=\"heading-anchor\" href=\"#lastvalue\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LastValue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.LastValue\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Dibandingkan pada <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\"><span class=\"pre\">FirstValue</span></code></a>, itu menghitung nilai terakhir dalam klausa kerangka yang diberikan.</p>\n</section>\n<section id=\"lead\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Lead</span></code><a class=\"heading-anchor\" href=\"#lead\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Lead</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">offset</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">1</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">default</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Lead\"><span class=\"visually-hidden\">Link to this definition</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=\"/id/2.1/ref/models/expressions/#window-frames\"><span class=\"std std-ref\">frame</span></a>. Both\n<code class=\"docutils literal notranslate\"><span class=\"pre\">offset</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> are evaluated with respect to the current row.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> must have the same type as the <code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code>, however, this is\nonly validated by the database and not in Python.</p>\n</section>\n<section id=\"nthvalue\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">NthValue</span></code><a class=\"heading-anchor\" href=\"#nthvalue\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">NthValue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">nth</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">1</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.NthValue\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">nth</span></code> (must be a positive value)\nwithin the window. Returns <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></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\"><span class=\"pre\">None</span></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\"><span class=\"pre\">Ntile</span></code><a class=\"heading-anchor\" href=\"#ntile\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Ntile</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">num_buckets</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">1</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Ntile\"><span class=\"visually-hidden\">Link to this definition</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\"><span class=\"pre\">num_buckets</span></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\"><span class=\"pre\">PercentRank</span></code><a class=\"heading-anchor\" href=\"#percentrank\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PercentRank</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.PercentRank\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Computes the percentile rank of the rows in the frame clause. This\ncomputation is equivalent to evaluating:</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=\"p\">(</span><span class=\"n\">rank</span> <span class=\"o\">-</span> <span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"o\">/</span> <span class=\"p\">(</span><span class=\"n\">total</span> <span class=\"n\">rows</span> <span class=\"o\">-</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Tabel berikut menjelaskan perhitungan untuk peringkat perseratus dari sebuah baris:</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>Baris #</p></th>\n<th class=\"head\"><p>Nilai</p></th>\n<th class=\"head\"><p>Peringkat</p></th>\n<th class=\"head\"><p>Perhitungan</p></th>\n<th class=\"head\"><p>Peringkat Persen</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\"><span class=\"pre\">Rank</span></code><a class=\"heading-anchor\" href=\"#rank\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Rank</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.Rank\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Comparable to <code class=\"docutils literal notranslate\"><span class=\"pre\">RowNumber</span></code>, 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\"><span class=\"pre\">DenseRank</span></code></a> to compute rank without\ngaps.</p>\n</section>\n<section id=\"rownumber\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RowNumber</span></code><a class=\"heading-anchor\" href=\"#rownumber\"><span class=\"visually-hidden\">Link to this heading</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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RowNumber</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">extra</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.functions.RowNumber\"><span class=\"visually-hidden\">Link to this definition</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=\"/id/2.1/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":"Fungsi perbandingan dan perubahan","anchor":"comparison-and-conversion-functions","children":[{"title":"Cast","anchor":"cast","children":[]},{"title":"Coalesce","anchor":"coalesce","children":[]},{"title":"Greatest","anchor":"greatest","children":[]},{"title":"Least","anchor":"least","children":[]}]},{"title":"Fungsi tanggal","anchor":"date-functions","children":[{"title":"Extract","anchor":"extract","children":[{"title":"Kutipan DateField","anchor":"datefield-extracts","children":[]},{"title":"Kutipan DateTimeField","anchor":"datetimefield-extracts","children":[]}]},{"title":"Now","anchor":"now","children":[]},{"title":"Trunc","anchor":"trunc","children":[{"title":"Pemotongan DateField","anchor":"datefield-truncation","children":[]},{"title":"Pemotongan DateTimeField","anchor":"datetimefield-truncation","children":[]},{"title":"Pemotongan TimeField","anchor":"timefield-truncation","children":[]}]}]},{"title":"Fungsi teks","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":"Ord","anchor":"ord","children":[]},{"title":"Repeat","anchor":"repeat","children":[]},{"title":"Replace","anchor":"replace","children":[]},{"title":"Right","anchor":"right","children":[]},{"title":"RPad","anchor":"rpad","children":[]},{"title":"RTrim","anchor":"rtrim","children":[]},{"title":"StrIndex","anchor":"strindex","children":[]},{"title":"Substr","anchor":"substr","children":[]},{"title":"Trim","anchor":"trim","children":[]},{"title":"Upper","anchor":"upper","children":[]}]},{"title":"Fungsi Windows","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":"Acuan API","url":"/id/2.1/ref/"},{"docname":"ref/models/index","title":"Model","url":"/id/2.1/ref/models/"}],"prev":{"docname":"ref/models/conditional-expressions","title":"Pernyataan Bersyarat","url":"/id/2.1/ref/models/conditional-expressions/"},"next":{"docname":"ref/request-response","title":"Obyek permintaan dan tanggapan","url":"/id/2.1/ref/request-response/"},"formats":{"html":"/id/2.1/ref/models/database-functions/","markdown":"/id/2.1/ref/models/database-functions.md","json":"/id/2.1/ref/models/database-functions.json"},"source":"https://github.com/django/django/blob/stable/2.1.x/docs/ref/models/database-functions.txt","official":"https://docs.djangoproject.com/id/2.1/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","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}