sql >> Database >  >> RDS >> Mysql

onverwachte resultaten voor timediff

Bewerken: Welke versie van MySQL gebruik je? Het werkt prima op 5.0.22 tenminste. Ik heb net deze query uitgevoerd. zie hier

 mysql> SELECT TIME_TO_SEC(TIMEDIFF('2000:01:01 00:00:00', '2001:01:01 00:00:00'));
 +---------------------------------------------------------------------+
 | TIME_TO_SEC(TIMEDIFF('2000:01:01 00:00:00', '2001:01:01 00:00:00')) |
 +---------------------------------------------------------------------+
 |                                                           -31622400 |
 +---------------------------------------------------------------------+
 1 row in set (0.00 sec)

Heb je hier gezien ? Het kan een afknottingsprobleem zijn omdat het tijdbereik veel kleiner is dan het datumverschil dat je hebt.

Oorspronkelijk antwoord

Gebruik dit

    SELECT TIMESTAMPDIFF(SECOND,'2000:01:01 00:00:00', '2001:01:01 00:00:00');
    +--------------------------------------------------------------------+
    | TIMESTAMPDIFF(SECOND,'2000:01:01 00:00:00', '2001:01:01 00:00:00') |
    +--------------------------------------------------------------------+
    |                                                           31622400 |
    +--------------------------------------------------------------------+

Het probleem is dat je een negatieve tijd probeert om te zetten in tijd-in-seconde. Het verwisselen van de variabelen zal het werk doen.

    SELECT TIME_TO_SEC(TIMEDIFF('2001:01:01 00:00:00','2000:01:01 00:00:00'));
    +--------------------------------------------------------------------+
    | TIME_TO_SEC(TIMEDIFF('2001:01:01 00:00:00','2000:01:01 00:00:00')) |
    +--------------------------------------------------------------------+
    |                                                           31622400 |
    +--------------------------------------------------------------------+



  1. kan niet meerdere tabellen opslaan in cakephp

  2. Een tabelkolom converteren naar een ander gegevenstype

  3. Problemen bij het maken van Trigger in MySQL

  4. Hoe een CLOB-object te splitsen met behulp van , en :scheidingsteken in Oracle in meerdere records