MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak STR_TO_DATE() działa w MariaDB

W MariaDB, STR_TO_DATE() to wbudowana funkcja daty i czasu, która zwraca wartość daty i godziny na podstawie podanego ciągu daty i ciągu formatu.

STR_TO_DATE() funkcja jest odwrotnością DATE_FORMAT() funkcja.

Składnia

Składnia wygląda tak:

STR_TO_DATE(str,format)

Gdzie str to ciąg daty, a format jest ciągiem formatu, który określa format ciągu daty.

Przykład

Oto przykład:

SELECT STR_TO_DATE('Monday, May 24, 2021', '%W, %M %e, %Y');

Wynik:

+------------------------------------------------------+
| STR_TO_DATE('Monday, May 24, 2021', '%W, %M %e, %Y') |
+------------------------------------------------------+
| 2021-05-24                                           |
+------------------------------------------------------+

Ciąg formatu składa się z wielu specyfikatorów formatu, które informują MariaDB o sposobie formatowania daty w pierwszym argumencie. Zobacz ciągi formatujące MariaDB, aby uzyskać listę specyfikatorów formatu, których można użyć w ciągu formatującym.

W tym przykładzie wynikiem jest wartość daty, ponieważ ciąg formatujący zawiera tylko części daty.

Zwróć wartość daty i godziny

Oto przykład, który zwraca wartość daty i godziny:

SELECT STR_TO_DATE('May 24, 2021', '%M %e, %Y %H:%i:%S');

Wynik:

+---------------------------------------------------+
| STR_TO_DATE('May 24, 2021', '%M %e, %Y %H:%i:%S') |
+---------------------------------------------------+
| 2021-05-24 00:00:00                               |
+---------------------------------------------------+

W tym przykładzie dodano część czasu, mimo że pierwszy argument nie zawierał części czasu.

Oto kolejny przykład, który zawiera część czasu w pierwszym argumencie:

SELECT 
STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S on %M %e, %Y');

Wynik:

+------------------------------------------------------------------+
| STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S on %M %e, %Y') |
+------------------------------------------------------------------+
| 2021-05-24 10:30:45                                              |
+------------------------------------------------------------------+

Oto kolejny, w którym ciąg daty używa luźniejszej wartości czasu:

SELECT 
STR_TO_DATE('10.30pm on May 24, 2021', '%H.%ipm on %M %e, %Y');

Wynik:

+----------------------------------------------------------------+
| STR_TO_DATE('10.30pm on May 24, 2021', '%H.%ipm on %M %e, %Y') |
+----------------------------------------------------------------+
| 2021-05-24 10:30:00                                            |
+----------------------------------------------------------------+

Zwróć wartość czasu

Tutaj zmieniamy ciąg formatujący, aby zwracał tylko wartość czasu:

SELECT STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S');

Wynik:

+-----------------------------------------------------+
| STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S') |
+-----------------------------------------------------+
| 10:30:45                                            |
+-----------------------------------------------------+

Niedozwolony ciąg daty/godziny

Przekazanie nieprawidłowego ciągu daty zwraca null z ostrzeżeniem.

Przykład:

SELECT STR_TO_DATE('Humpday, May 26, 2021', '%W, %M %e, %Y');

Wynik:

+-------------------------------------------------------+
| STR_TO_DATE('Humpday, May 26, 2021', '%W, %M %e, %Y') |
+-------------------------------------------------------+
| NULL                                                  |
+-------------------------------------------------------+
1 row in set, 1 warning (0.009 sec)

Spójrzmy na ostrzeżenie:

SHOW WARNINGS;

Wynik:

+---------+------+----------------------------------------------------------------------------+
| Level   | Code | Message                                                                    |
+---------+------+----------------------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: 'Humpday, May 26, 2021' for function str_to_date |
+---------+------+----------------------------------------------------------------------------+

Brakujący argument

Wywołanie STR_TO_DATE() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT STR_TO_DATE();

Wynik:

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

I kolejny przykład:

SELECT STR_TO_DATE('Friday, 28 May 2021');

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łatwe tworzenie zapory SQL dzięki ClusterControl i ProxySQL

  2. 2 sposoby na zwrócenie kodu ASCII dla danej postaci w MariaDB

  3. Używanie silnika pamięci masowej Aria z serwerem MariaDB

  4. Jak rozwiązywać problemy z bazą danych MySQL

  5. Dziesięć wskazówek, jak osiągnąć bezpieczeństwo MySQL i MariaDB