MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи MAKETIME() в MariaDB

В MariaDB, MAKETIME() е вградена функция за дата и час, която връща стойност за време въз основа на часовете, минутите и секундите, предоставени като аргументи.

Синтаксис

Синтаксисът е така:

MAKETIME(hour,minute,second) 

Пример

Ето един пример:

SELECT MAKETIME(08, 30, 45); 

Резултат:

+---------------------+| MAKETIME(08, 30, 45) |+---------------------+| 08:30:45 |+---------------------+

И още един:

SELECT MAKETIME(23, 8, 1); 

Резултат:

+-------------------+| MAKETIME(23, 8, 1) |+-------------------+| 23:08:01 |+-------------------+

Обхвати

Ако hour аргументът е извън диапазона -838 до 838 , стойността е съкратена с предупреждение.

Ако minute или second аргументите са извън диапазона 0 до 59 , резултатът е null и се показва предупреждение (документацията на MariaDB посочва, че диапазонът е 0 до 60 , но това не е така в моите тестове. Освен това, документацията на MariaDB също така посочва, че диапазонът за стойностите на времето на MariaDB е '-838:59:59.999999' до '838:59:59.999999' ).

Както и да е, ето пример за време със стойности, които са в горния край на техния приет диапазон:

SELECT MAKETIME(838, 59, 59.999999); 

Резултат:

+------------------------------+| MAKETIME(838, 59, 59.999999) |+------------------------------+| 838:59:59.999999 |+------------------------------+

Тези стойности все още бяха в приетия диапазон и така получихме валидна времева стойност.

Невалидни минути и секунди

Ето какво се случва, когато надхвърлим приетия диапазон за minute и second аргументи:

SELECT 
    MAKETIME(00, 60, 00),
    MAKETIME(00, 00, 60); 

Резултат:

+---------------------+---------------------+ | MAKETIME(00, 60, 00) | MAKETIME(00, 00, 60) |+---------------------+----------------- -----+| NULL | NULL |+---------------------+---------------------+1 ред в комплект, 1 предупреждение (0,001 сек.)

Резултатът е null и за двете, с предупреждение.

Нека проверим предупреждението:

SHOW WARNINGS; 

Резултат:

+--------+------+---------------------------- ------------+| Ниво | Код | Съобщение |+--------+------+------------------------------ -----------+| Предупреждение | 1292 | Съкратена неправилна стойност на секундите:'60' |+---------+-----+----------------------- ------------------+

Невалидни часове

Сега нека видим какво се случва, когато излезем извън приетия диапазон за hour аргумент:

SELECT MAKETIME(900, 00, 00); 

Резултат:

<пред>+-----------------------+| MAKETIME(900, 00, 00) |+-----------------------+| 838:59:59 |+-----------------------+1 ред в комплект, 1 предупреждение (0,000 сек)

В този сценарий се връща стойност за време с часове, минути и секунди, подрязани до техния горен диапазон. Също така се връща предупреждение.

Нека проверим предупреждението:

SHOW WARNINGS; 

Резултат:

+--------+------+---------------------------- ----------------+| Ниво | Код | Съобщение |+--------+------+------------------------------ ---------------+| Предупреждение | 1292 | Съкратена неправилна стойност на времето:'900:00:00' |+---------+------+------------------- ----------------------------------+

Липсващ аргумент

Извикване на MAKETIME() с грешен брой аргументи или без подаване на аргументи, води до грешка:

SELECT MAKETIME(); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествената функция „MAKETIME“

И още един пример:

SELECT MAKETIME( 12, 1 ); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествената функция „MAKETIME“

Направете дата

Вижте също SEC_TO_TIME() за конструиране на стойност за дата от няколко секунди.

Вижте също MAKEDATE() за конструиране на стойност за дата от нейната година и ден от годината.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Популярни Docker изображения за MySQL и MariaDB сървър

  2. Как да инсталирате и защитите MariaDB 10 в CentOS 6

  3. 2 начина за връщане на ASCII кода за даден знак в MariaDB

  4. MariaDB ROWNUM() Обяснено

  5. Подобряване на производителността на бекенда, част 2/3:Използване на индекси на база данни