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

TO_SECONDS() Примери – MySQL

В MySQL, TO_SECONDS() функцията връща броя на секундите от годината 0.

Тази функция не трябва да се бърка с TIME_TO_SECONDS() функция, която връща броя секунди в дадена времева стойност, предоставена като аргумент.

Синтаксис

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

TO_SECONDS(expr)

Където expr е стойност за дата или час (за сравнение с година 0).

Пример 1 – Използване на аргумент „дата“

Ето пример за използване на аргумент за дата.

SELECT TO_SECONDS('2021-09-21');

Резултат:

+--------------------------+
| TO_SECONDS('2021-09-21') |
+--------------------------+
|              63799401600 |
+--------------------------+

Пример 2 – Използване на аргумент „datetime“

Ето пример за използване на аргумент дата и час.

SELECT TO_SECONDS('2021-09-21 10:30:25');

Резултат:

+-----------------------------------+
| TO_SECONDS('2021-09-21 10:30:25') |
+-----------------------------------+
|                       63799439425 |
+-----------------------------------+

Пример 3 – Използване на текущата дата

В този пример предавам CURDATE() функция като аргумент, за да се използва текущата дата.

SELECT TO_SECONDS(CURDATE()) AS 'Result';

Резултат:

+-------------+
| Result      |
+-------------+
| 63697968000 |
+-------------+

Пример 4 – Използване на текущата дата и час

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

SELECT TO_SECONDS(NOW()) AS 'Result';

Резултат:

+-------------+
| Result      |
+-------------+
| 63698002698 |
+-------------+

Двуцифрени години

MySQL има специални правила за работа с дати с двуцифрени години. Двуцифрените години са нееднозначни, защото векът е неизвестен. По принцип важат следните правила:

  • Годишни стойности в диапазона 00-69 се преобразуват в 2000-2069 .
  • Годишни стойности в диапазона 70-99 се преобразуват в 1970-1999 .

За пълно обяснение вижте документацията на MySQL за това как MySQL се справя с двуцифрени години.

Ето пример за демонстрация:

SELECT 
  TO_SECONDS('69-10-07') AS '69 (2069)',
  TO_SECONDS('70-10-07') AS '70 (1970)';

Резултат:

+-------------+-------------+
| 69 (2069)   | 70 (1970)   |
+-------------+-------------+
| 65315548800 | 62191324800 |
+-------------+-------------+

Съкратени дати

Можете също да използвате съкратени дати. Ето пример, използващ предишните стойности за дата в съкратена форма.

SELECT 
  TO_SECONDS('691007') AS '69 (2069)',
  TO_SECONDS('701007') AS '70 (1970)';

Резултат:

+-------------+-------------+
| 69 (2069)   | 70 (1970)   |
+-------------+-------------+
| 65315548800 | 62191324800 |
+-------------+-------------+

По-ранни дати

Документацията на MySQL предупреждава, че TO_SECONDS() функция:

не е предназначен за използване със стойности, които предхождат появата на Григорианския календар (1582 г.), тъй като не отчита дните, които са били загубени при смяната на календара. За дати преди 1582 г. (и вероятно по-късна година в други локали) резултатите от тази функция не са надеждни.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да активирате MySQL Slow Query Log в MySQL

  2. ИЗБЕРЕТЕ * ОТ множество таблици. MySQL

  3. Тип MySQL ENUM спрямо таблици за присъединяване

  4. Как да изчислим разликата между две времеви марки в MySQL

  5. Как работи функцията REGEX_REPLACE() в MySQL