В MariaDB, TO_CHAR()
е вградена низова функция, която преобразува израз за дата/час в низ.
Изразът може да бъде стойност за дата, дата, час или време.
Тази функция е въведена в MariaDB 10.6.1 за подобряване на съвместимостта с Oracle.
Синтаксис
Синтаксисът е така:
TO_CHAR(expr[, fmt])
Където expr
е стойност за дата, час, час или времеви клей и fmt
е незадължителен низ за форматиране, който указва как трябва да бъде форматиран изходът.
Низът за формат може да бъде някое от следните:
YYYY
YYY
YY
RRRR
RR
MM
MON
MONTH
MI
DD
DY
HH
HH12
HH24
SS
- Специални знаци
Стойността по подразбиране е YYYY-MM-DD HH24:MI:SS
.
Пример
Ето пример за демонстрация:
SELECT TO_CHAR('2020-01-01');
Резултат:
<пред>+-----------------------+| TO_CHAR('2020-01-01') |+-----------------------+| 2020-01-01 00:00:00 |+-----------------------+Предаване на стойност за дата и час
Този пример използва стойност за дата и час:
SELECT TO_CHAR('2022-12-25 10:30:45');
Резултат:
+--------------------------------+| TO_CHAR('2022-12-25 10:30:45') |+--------------------------------+ | 2022-12-25 10:30:45 |+--------------------------------+
Посочете низ за формат
Ето пример с низ за формат:
SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD');
Резултат:
+------------------------------------------------------- +| TO_CHAR('2022-12-25 10:30:45', 'ГГГГ-ММ-ДД') |+------------------------- ---------------------+| 2022-12-25 |+--------------------------------------------------- ---+
Ето още един:
SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY');
Резултат:
+----------------------------------------------+| TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') |+------------------------------ --------------+| нд, 25 декември 2022 г. |+--------------------------------------------------- -+
Числови дати
Ето какво се случва, когато предоставя цифрова дата:
SELECT TO_CHAR(20200101);
Резултат:
ГРЕШКА 3047 (HY000):Грешка с невалиден аргумент:типът данни на първия аргумент трябва да бъде тип дата/дата/час или низ във функция to_char.
Невалидни дати
Ако датата е невалидна, TO_CHAR()
връща null
с предупреждение:
SELECT TO_CHAR('2020-01-51');
Резултат:
<пред>+-----------------------+| TO_CHAR('2020-01-51') |+-----------------------+| NULL |+-----------------------+1 ред в комплект, 1 предупреждение (0,001 сек)Нека проверим предупреждението:
SHOW WARNINGS;
Резултат:
+--------+------+---------------------------- -----------+| Ниво | Код | Съобщение |+---------+------+------------------------------ ----------+| Предупреждение | 1292 | Неправилна стойност за дата и час:'2020-01-51' |+---------+------+-------------------- --------------------+
Невалиден форматен низ
Ако низът за формат е невалиден, TO_CHAR()
връща грешка:
SELECT TO_CHAR('2020-01-01', 'wow');
Резултат:
ГРЕШКА 3047 (HY000):Грешка с невалиден аргумент:форматът на датата не е разпознат при wow във функция to_char.
Нулев формат на низ
TO_CHAR()
връща null
ако форматиращият низ е null
:
SELECT TO_CHAR('2020-01-01', null);
Резултат:
+----------------------------+| TO_CHAR('2020-01-01', null) |+----------------------------+| NULL |+-----------------------------+
Невалиден брой аргументи
Предаването на невалиден брой аргументи (или без аргументи) води до грешка:
SELECT TO_CHAR();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествена функция „TO_CHAR“