diff --git a/docs/images/ebnf/expression.svg b/docs/images/ebnf/expression.svg
index c4d798f9b37657110bc98ca1f3a683057cddd0e4..454a42487d88d9955207456ed7f34d1cccfa07bc 100644
Binary files a/docs/images/ebnf/expression.svg and b/docs/images/ebnf/expression.svg differ
diff --git a/docs/images/ebnf/localtimestamp.svg b/docs/images/ebnf/localtimestamp.svg
new file mode 100644
index 0000000000000000000000000000000000000000..734903cddb87730f0ab1acc8a61667581a1a8852
Binary files /dev/null and b/docs/images/ebnf/localtimestamp.svg differ
diff --git a/docs/images/ebnf/substring.svg b/docs/images/ebnf/substring.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bb21937fe472d14864f6f9891b2dbb0514d9488d
Binary files /dev/null and b/docs/images/ebnf/substring.svg differ
diff --git a/docs/images/ebnf/substringFor.svg b/docs/images/ebnf/substringFor.svg
new file mode 100644
index 0000000000000000000000000000000000000000..96957b892f31bd8581f40acd3079b77c5322dbb7
Binary files /dev/null and b/docs/images/ebnf/substringFor.svg differ
diff --git a/docs/images/ebnf/substringFrom.svg b/docs/images/ebnf/substringFrom.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6099650f35818e4b0c935731d97f19609fbf4976
Binary files /dev/null and b/docs/images/ebnf/substringFrom.svg differ
diff --git a/docs/images/ebnf/substringFromFor.svg b/docs/images/ebnf/substringFromFor.svg
new file mode 100644
index 0000000000000000000000000000000000000000..9ad049a85cf6f4c52b5ececa1bb3e493d4431ea0
Binary files /dev/null and b/docs/images/ebnf/substringFromFor.svg differ
diff --git a/docs/images/ebnf/substringRegular.svg b/docs/images/ebnf/substringRegular.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8a81f08b69745bb42a87c072ae208f5695e4e613
Binary files /dev/null and b/docs/images/ebnf/substringRegular.svg differ
diff --git a/docs/images/ebnf/substringSimilar.svg b/docs/images/ebnf/substringSimilar.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c3131de6a7a6b7631670cd6590d0c9698798d6ff
Binary files /dev/null and b/docs/images/ebnf/substringSimilar.svg differ
diff --git a/docs/images/ebnf/substringVariant.svg b/docs/images/ebnf/substringVariant.svg
new file mode 100644
index 0000000000000000000000000000000000000000..923521c30ec329db993767bffae8a96d6c00aab1
Binary files /dev/null and b/docs/images/ebnf/substringVariant.svg differ
diff --git a/docs/reference/ansi_sql.md b/docs/reference/ansi_sql.md
index ade59c19eeee1f55b8043b2d35a3c4630901d301..10ea2ba6318b40204e3349591a3b7e755ad0a5c4 100644
--- a/docs/reference/ansi_sql.md
+++ b/docs/reference/ansi_sql.md
@@ -187,8 +187,12 @@ td.td3 ul {
         <tr>
             <td class="center"><span class="partly">E021-06</span></td>
             <td>Функция SUBSTRING</td>
-            <td class="td3 center">[SUBSTR](sql/substr.md)</td>
-            <td>Функция SUBSTRING не поддерживается, но есть SUBSTR</td>
+            <td class="td3 center"></td>
+            <td class="td3 center"><ul>
+                                   <li>[SUBSTR](sql/substr.md)</li>
+                                   <li>[SUBSTRING](sql/substring.md)</li>
+                                   </ul></td>
+            <td></td>
         </tr>
         <tr>
             <td class="center"><span class="full">E021-07</span></td>
@@ -845,9 +849,9 @@ td.td3 ul {
             <td></td>
         </tr>
         <tr>
-            <td class="center"><span class="absent">F051-08</span></td>
+            <td class="center"><span class="full">F051-08</span></td>
             <td>LOCALTIMESTAMP</td>
-            <td class="td3 center"></td>
+            <td class="td3 center">[LOCALTIMESTAMP](sql/localtimestamp.md)</td>
             <td></td>
         </tr>
 <!-- F081 UNION and EXCEPT in views -->
diff --git a/docs/reference/sql/localtimestamp.md b/docs/reference/sql/localtimestamp.md
new file mode 100644
index 0000000000000000000000000000000000000000..dacec53841687e9543280cb4414402e007d9a061
--- /dev/null
+++ b/docs/reference/sql/localtimestamp.md
@@ -0,0 +1,44 @@
+# LOCALTIMESTAMP
+
+Функция `LOCALTIMESTAMP` возвращает текущую дату и время в часовом поясе
+из текущей сессии SQL. Это возвратит значение `TIMESTAMP`.
+
+В качестве аргумента для функции можно указать целое число от `0` до `6`,
+определяющее точность времени. Значения выше `6` игнорируются.
+
+## Синтаксис {: #syntax }
+
+![LOCALTIMESTAMP](../../images/ebnf/localtimestamp.svg)
+
+## Примеры {: #examples }
+
+```sql title="Получение текущей даты и времени"
+sql> SELECT localtimestamp;
++-----------------------------+
+| col_1                       |
++=============================+
+| 2025-02-21T17:47:21.236402Z |
++-----------------------------+
+(1 rows)
+```
+
+```sql title="Получение текущей даты и времени с повышенной точностью"
+
+sql> select localtimestamp(3);
++--------------------------+
+| col_1                    |
++==========================+
+| 2025-02-21T17:48:09.981Z |
++--------------------------+
+(1 rows)
+```
+
+```sql title="Получение текущей даты и времени с максимальной точностью"
+sql> SELECT localtimestamp(6);
++-----------------------------+
+| col_1                       |
++=============================+
+| 2025-02-21T17:51:18.664697Z |
++-----------------------------+
+(1 rows)
+```
diff --git a/docs/reference/sql/substr.md b/docs/reference/sql/substr.md
index 13e70adc0bec94dbbb90fba62ebb1e7972f8db42..21304e4d73fde8d3c2de62cf75ec55394b658788 100644
--- a/docs/reference/sql/substr.md
+++ b/docs/reference/sql/substr.md
@@ -28,7 +28,7 @@
 
 ## Примеры {: #examples }
 
-```title="Запрос VALUES с функцией SUBSTR и параметром <i>from</i>"
+```sql title="Запрос VALUES с функцией SUBSTR и параметром <i>from</i>"
 sql> VALUES ( SUBSTR('picodata', 3) );
 +----------+
 | COLUMN_1 |
@@ -36,10 +36,9 @@ sql> VALUES ( SUBSTR('picodata', 3) );
 | "codata" |
 +----------+
 (1 rows)
-
 ```
 
-```title="Запрос VALUES с функцией SUBSTR и параметрами <i>from</i> и <i>count</i>"
+```sql title="Запрос VALUES с функцией SUBSTR и параметрами <i>from</i> и <i>count</i>"
 sql> VALUES ( SUBSTR('picodata', 3, 4) );
 +----------+
 | COLUMN_1 |
diff --git a/docs/reference/sql/substring.md b/docs/reference/sql/substring.md
new file mode 100644
index 0000000000000000000000000000000000000000..99697b963aa8e95d0c898d7d56f4a37e50e66c1a
--- /dev/null
+++ b/docs/reference/sql/substring.md
@@ -0,0 +1,112 @@
+# SUBSTRING {: #substring }
+
+Функция `SUBSTRING` извлекает подстроку из строки *string* подобно тому,
+как это делает функция [SUBSTR](substr.md), однако предоставляет
+дополнительные возможности поиска символов.
+
+## Синтаксис {: #syntax }
+
+### Основная функция {: #main_function }
+
+![SUBSTRING](../../images/ebnf/substring.svg)
+
+### Варианты поиска подстроки {: #substringVariant }
+
+![SUBSTRINGVARIANT](../../images/ebnf/substringVariant.svg)
+
+Доступны несколько вариантов поиска подстроки:
+
+- `For` — искать слева направо _по_ указанный номера символа
+- `From` — искать слева направо _с_ указанного номера символа, а также
+  извлечь первую подстроку, соответствующую регулярному выражению в
+  стиле POSIX
+- `FromFor` — сочетание обоих вариантов выше, указание полных границ поиска
+- `Regular` — традиционный поиск по номерам символов, как в [SUBSTR](substr.md)
+- `Similar` — поиск по схожести c использованием регулярного выражения и
+  экранирования специальных символов в нем
+
+Отличие варианта `FromFor` от `Regular` также состоит в том, что поиск
+может происходить не только по позициям символом (их номерах), но и по
+вхождению подстроки с помощью регулярных выражений, см. [примеры](#examples).
+
+#### substringFor {: #substringFor }
+
+![SUBSTRINGFOR](../../images/ebnf/substringFor.svg)
+
+#### substringFrom {: #substringFrom }
+
+![SUBSTRINGFROM](../../images/ebnf/substringFrom.svg)
+
+#### substringFromFor {: #substringFromFor }
+
+![SUBSTRINGFROMFOR](../../images/ebnf/substringFromFor.svg)
+
+#### substringRegular {: #substringRegular }
+
+![SUBSTRINGREGULAR](../../images/ebnf/substringRegular.svg)
+
+#### substringSimilar {: #substringSimilar }
+
+![SUBSTRINGSIMILAR](../../images/ebnf/substringSimilar.svg)
+
+### Выражение {: #expression }
+
+??? note "Диаграмма"
+    ![Expression](../../images/ebnf/expression.svg)
+
+### Литерал {: #literal }
+
+??? note "Диаграмма"
+    ![Literal](../../images/ebnf/literal.svg)
+
+## Примеры {: #examples }
+
+```sql title="Указание только начального отступа"
+sql> SELECT SUBSTRING('(select 1)', 3);
++----------+
+| col_1    |
++==========+
+| elect 1) |
++----------+
+(1 rows)
+```
+
+```sql title="Указание обеих границ"
+sql> SELECT SUBSTRING('1234567890' FROM 4 FOR 3);
++-------+
+| col_1 |
++=======+
+| 456   |
++-------+
+(1 rows)
+```
+
+```sql title="Поиск первой подстроки, удовлетворяющей регулярному выражению в стиле SQL"
+sql> SELECT SUBSTRING('abcdefg' FROM 'a#"(b_d)#"%' FOR '#');
++-------+
+| col_1 |
++=======+
+| bcd   |
++-------+
+(1 rows)
+```
+
+```sql title="Поиск первой подстроки, удовлетворяющей регулярному выражению в стиле POSIX"
+sql> SELECT substring('Thomas' FROM '...$') ;
++-------+
+| col_1 |
++=======+
+| mas   |
++-------+
+(1 rows)
+```
+
+```sql title="Поиск первой подстроки, удовлетворяющей регулярному выражению в стиле SQL"
+sql>  SELECT SUBSTRING('abcdefg' SIMILAR 'a#"%#"x|g' ESCAPE '#');
++-------+
+| col_1 |
++=======+
+| bcdef |
++-------+
+(1 rows)
+```
diff --git a/docs/sql_index.md b/docs/sql_index.md
index b2ede7a627d0a1591068e90209dc0e304bf41a0e..d7463b9fc80748700482072141c046951270d655 100644
--- a/docs/sql_index.md
+++ b/docs/sql_index.md
@@ -115,6 +115,7 @@ article.md-typeset.md-typeset ul {
 * [LIMIT](reference/sql/select.md#params)
 * [LIMIT ALL](reference/sql/select.md#params)
 * [LIMIT NULL](reference/sql/select.md#params)
+* [LOCALTIMESTAMP](reference/sql/localtimestamp.md)
 * [LOWER](reference/sql/lower.md)
 
 <b>M</b>
@@ -146,6 +147,7 @@ article.md-typeset.md-typeset ul {
 * [sharding key](overview/glossary.md#sharding_key)
 * [stored procedure](overview/glossary.md#stored_procedure)
 * [SUBSTR](reference/sql/substr.md)
+* [SUBSTRING](reference/sql/substring.md)
 * [SUM](reference/sql/aggregate.md#functions)
 
 <b>T</b>
diff --git a/mkdocs.yml b/mkdocs.yml
index 6c7e74d0be8dfd90299a3e67bde65f8d61786708..b128da93490a9548a1210eba66fdf8b7903330a0 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -113,10 +113,12 @@ nav:
         - reference/sql/like.md
         - reference/sql/lower.md
         - reference/sql/substr.md
+        - reference/sql/substring.md
         - reference/sql/trim.md
         - reference/sql/upper.md
         - Дата и время:
           - reference/sql/current_date.md
+          - reference/sql/localtimestamp.md
           - reference/sql/to_char.md
           - reference/sql/to_date.md
     - reference/cli.md