Datetime alanlar arasında geçen süreyi karşılaştırmak nasıl?

2 Cevap php

Gibi bakmak mySql tip Datetime'ın 2 alanları verilmiştir: 2009-07-26 18:42:21. PHP bu değerleri aldıktan sonra, nasıl, kaç saniye aralarında geçtikten anlamaya 2 saat damgalarını karşılaştırabilirsiniz? Onları çıkarılarak sadece denedim ama işe vermedi.

2 Cevap

Tarihleri ​​karşılaştırmak için bu PHP kodu deneyin;

<?php
$date_difference_in_seconds = abs(strtotime($date_1) - strtotime($date_2));
?>

MySQL saklar PHP kullanımlarla farklı bir biçimde bulunmaktadır tarihleri. PHP mağazalar http://en.wikipedia.org/wiki/Unix_time at hakkında daha fazla okuyabilirsiniz Unix Epoch beri geçen saniye Tarihleri. Bu kod bir satır sadece PHP formatında iki tarihleri ​​dönüştürür ve olumsuz sonuçları önlemek amacıyla değerini absoluting önce birbirinden iki tarihleri ​​çıkarır.

MySQL de tüm döner biçiminde tarihi kullanmak istemiyorum, ama sadece onları çıkarıldıktan sonra, bellek korumak yerine düz dışarı SQL sorgusu kullanmak ise:

SELECT TIME_TO_SEC(TIME_DIFF(date_1, date_2)) AS date_difference_in_seconds FROM table;

unix zaman damgaları olarak seçin ve sadece birini diğerinden çıkarma

SELECT UNIX_TIMESTAMP(field1) AS time1, UNIX_TIMESTAMP(field2) AS time2