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

MySQL:как да получите разликата между две времеви марки в секунди

Можете да използвате TIMEDIFF() и TIME_TO_SEC() функционира, както следва:

SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
+------+
| diff |
+------+
|   60 |
+------+
1 row in set (0.00 sec)

Можете също да използвате UNIX_TIMESTAMP() функционира като @Amber предложи в друг отговор:

SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') - 
       UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
+------+
| diff |
+------+
|   60 |
+------+
1 row in set (0.00 sec)

Ако използвате TIMESTAMP тип данни, предполагам, че UNIX_TIMESTAMP() решението би било малко по-бързо, тъй като TIMESTAMP стойностите вече се съхраняват като цяло число, представляващо броя на секундите от епохата (Източник ). Цитиране на документите :

Когато UNIX_TIMESTAMP() се използва за TIMESTAMP колона, функцията връща вътрешната стойност на времеви печат директно, без имплицитно преобразуване „string-to-Unix-timestamp“.

Имайте предвид, че TIMEDIFF() връщане тип данни на TIME . TIME стойностите може да варират от '-838:59:59' до '838:59:59' (приблизително 34,96 дни)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво е CHAR_LENGTH() в MySQL?

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

  3. Разбиране на набори от символи и съпоставяния в MySQL

  4. АКТУАЛИЗИРАНЕ НА MySQL:Топ 5 съвета за T-SQL разработчици

  5. Функция MySQL FLOOR() – закръгля надолу до най-близкото цяло число