diff --git a/docs/images/ebnf/to_char.svg b/docs/images/ebnf/to_char.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5f9aff470ec2c2a1a5246b2833412f8249f4b0e9
Binary files /dev/null and b/docs/images/ebnf/to_char.svg differ
diff --git a/docs/reference/ansi_sql.md b/docs/reference/ansi_sql.md
index 3d6afaf2079a1c79368a3adb51ffee28f1d6b4ae..c501c73bb0123a06c63e7b1c4d2149140a7cf69c 100644
--- a/docs/reference/ansi_sql.md
+++ b/docs/reference/ansi_sql.md
@@ -1176,7 +1176,7 @@ td.td3 ul {
         <tr>
             <td class="center"><span class="full">—</span></td>
             <td>TO_CHAR</td>
-            <td class="td3 center">TO_CHAR</td>
+            <td class="td3 center">[TO_CHAR](sql/to_char.md)</td>
             <td></td>
         </tr>
         <tr>
diff --git a/docs/reference/sql/to_char.md b/docs/reference/sql/to_char.md
new file mode 100644
index 0000000000000000000000000000000000000000..a0d23f8bb9663c8bc0b847a790051def8541b8c0
--- /dev/null
+++ b/docs/reference/sql/to_char.md
@@ -0,0 +1,50 @@
+# TO_CHAR {: #to_char }
+
+Функция `TO_CHAR` преобразует объект *expression* типа [DATETIME] в строку
+типа [TEXT] согласно формату *format*.
+
+Значение *format* должно соответствовать спецификации [strftime].
+
+[TEXT]: ../sql_types.md#text
+[DATETIME]: ../sql_types.md#datetime
+[strftime]: https://man.freebsd.org/cgi/man.cgi?query=strftime
+
+## Синтаксис {: #syntax }
+
+![TO_CHAR](../../images/ebnf/to_char.svg)
+
+### Выражение {: #expression }
+
+<details><summary>Диаграмма</summary><p>
+![Expression](../../images/ebnf/expression.svg)
+</p></details>
+
+### Литерал {: #literal }
+
+<details><summary>Диаграмма</summary><p>
+![Literal](../../images/ebnf/literal.svg)
+</p></details>
+
+## Примеры {: #examples }
+
+??? example "Тестовые таблицы"
+    Примеры использования команд включают в себя запросы к [тестовым
+    таблицам](../legend.md).
+
+```sql title="Преобразование объектов DATETIME в строковые литералы заданного формата"
+picodata> SELECT to_char(since, 'In stock since: %d %b %Y') FROM orders;
++-------------------------------+
+| COL_1                         |
++===============================+
+| "In stock since: 13 Feb 2024" |
+|-------------------------------|
+| "In stock since: 29 Jan 2024" |
+|-------------------------------|
+| "In stock since: 11 Nov 2023" |
+|-------------------------------|
+| "In stock since: 11 May 2024" |
+|-------------------------------|
+| "In stock since: 01 Apr 2024" |
++-------------------------------+
+(5 rows)
+```
diff --git a/docs/sql_index.md b/docs/sql_index.md
index 889a16208cc4be9918c6859ba32f094b5d2d0f07..869709f82ae18d1e42d82b23be0f7df93b37f713 100644
--- a/docs/sql_index.md
+++ b/docs/sql_index.md
@@ -48,4 +48,5 @@
 
 ### Дата и время {: #date_and_time }
 
+* [TO_CHAR](reference/sql/to_char.md)
 * [TO_DATE](reference/sql/to_date.md)
diff --git a/mkdocs.yml b/mkdocs.yml
index 9ac4141decb0a095cae0d664f3ce2d2f2f4295e0..91db98afc285e2d4f390bc8c8d8977fbb01f3f7b 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -86,6 +86,7 @@ nav:
         - reference/sql/cast.md
         - reference/sql/trim.md
         - Дата и время:
+          - reference/sql/to_char.md
           - reference/sql/to_date.md
     - reference/cli.md
     - reference/config.md