sql >> Databáze >  >> RDS >> MariaDB

Jak TO_CHAR() funguje v MariaDB

V MariaDB, TO_CHAR() je vestavěná funkce řetězce, která převádí výraz data/času na řetězec.

Výraz může být datum, datum a čas, čas nebo hodnota časového razítka.

Tato funkce byla představena v MariaDB 10.6.1 za účelem zlepšení kompatibility Oracle.

Syntaxe

Syntaxe vypadá takto:

TO_CHAR(expr[, fmt])

Kde expr je hodnota data, data a času, času nebo časového razítka a fmt je volitelný formátovací řetězec, který určuje, jak má být výstup formátován.

Formátovací řetězec může být kterýkoli z následujících:

  • YYYY
  • YYY
  • YY
  • RRRR
  • RR
  • MM
  • MON
  • MONTH
  • MI
  • DD
  • DY
  • HH
  • HH12
  • HH24
  • SS
  • Speciální znaky

Výchozí hodnota je YYYY-MM-DD HH24:MI:SS .

Příklad

Zde je příklad k demonstraci:

SELECT TO_CHAR('2020-01-01');

Výsledek:

+-----------------------+
| TO_CHAR('2020-01-01') |
+-----------------------+
| 2020-01-01 00:00:00   |
+-----------------------+

Předejte hodnotu data a času

Tento příklad používá hodnotu datetime:

SELECT TO_CHAR('2022-12-25 10:30:45');

Výsledek:

+--------------------------------+
| TO_CHAR('2022-12-25 10:30:45') |
+--------------------------------+
| 2022-12-25 10:30:45            |
+--------------------------------+

Zadejte formátovací řetězec

Zde je příklad s formátovacím řetězcem:

SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD');

Výsledek:

+----------------------------------------------+
| TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD') |
+----------------------------------------------+
| 2022-12-25                                   |
+----------------------------------------------+

Tady je další:

SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY');

Výsledek:

+--------------------------------------------+
| TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') |
+--------------------------------------------+
| Sun, 25 December  2022                     |
+--------------------------------------------+

Číselná data

Když poskytnu číselné datum, stane se toto:

SELECT TO_CHAR(20200101);

Výsledek:

ERROR 3047 (HY000): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.

Neplatná data

Pokud je datum neplatné, TO_CHAR() vrátí null s varováním:

SELECT TO_CHAR('2020-01-51');

Výsledek:

+-----------------------+
| TO_CHAR('2020-01-51') |
+-----------------------+
| NULL                  |
+-----------------------+
1 row in set, 1 warning (0.001 sec)

Podívejme se na varování:

SHOW WARNINGS;

Výsledek:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2020-01-51' |
+---------+------+----------------------------------------+

Neplatný formátovací řetězec

Pokud je formátovací řetězec neplatný, TO_CHAR() vrátí chybu:

SELECT TO_CHAR('2020-01-01', 'wow');

Výsledek:

ERROR 3047 (HY000): Invalid argument error: date format not recognized at wow in function to_char.

Řetězec formátu Null

TO_CHAR() vrátí null pokud je formátovací řetězec null :

SELECT TO_CHAR('2020-01-01', null);

Výsledek:

+-----------------------------+
| TO_CHAR('2020-01-01', null) |
+-----------------------------+
| NULL                        |
+-----------------------------+

Neplatný počet argumentů

Předání neplatného počtu argumentů (nebo žádných argumentů) má za následek chybu:

SELECT TO_CHAR();

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_CHAR'

  1. Jak použít metodu bindValue v klauzuli LIMIT?

  2. Jak najít rozdíl v hodnotách černobílého formátu TIMESTAMP v Oracle?

  3. SQLite - Vytvořte vztah

  4. Sdílení dat pomocí PostgreSQL 11