Rumah > pangkalan data > tutorial mysql > mySQL的datetime的时间间隔_MySQL

mySQL的datetime的时间间隔_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-01 13:18:25
asal
772 orang telah melayarinya

bitsCN.com

mySQL比较两个datetime类型的时间间隔,以秒为单位:

SELECTTIME_TO_SEC(TIMEDIFF('2009-02-09 11:24:46','2009-02-09 10:23:46'));

先看SELECT TIMEDIFF('2009-02-09 11:24:46','2009-02-09 10:23:46')
Salin selepas log masuk
/01:01:00
SELECT TIME_TO_SEC('01:01:00')
Salin selepas log masuk
Salin selepas log masuk
/3660
因此便知两个datetime数据之间相差的秒数。
Salin selepas log masuk
如果我们考虑这两个datetime数据先用TIME_TO_SEC转化为各自秒数,再来相减,不是一样的效果吗?
Salin selepas log masuk
SELECT TIME_TO_SEC('2009-02-09 11:24:46')-TIME_TO_SEC('2009-02-09 10:23:46')
Salin selepas log masuk
3660
Salin selepas log masuk
Salin selepas log masuk
看似这种方法也ok,不过我们再观察一组数据,你就清楚为什么不能用这种方式来比较两个datetime数据之间的时间间隔了。
Salin selepas log masuk
我们现在改用&#39;2009-02-<strong>08</strong> 11:24:46&#39;和&#39;2009-02-09 10:23:46&#39;比较:
Salin selepas log masuk
SELECT TIME_TO_SEC(&#39;2009-02-<strong>08</strong> 11:24:46&#39;)-TIME_TO_SEC(&#39;2009-02-09 10:23:46&#39;)
Salin selepas log masuk
3660
Salin selepas log masuk
Salin selepas log masuk
奇怪了,左边参数已经比右边参数提早一天了,为什么秒数相减还是正值呢?
Salin selepas log masuk
原来,TIME_TO_SEC只会把datetime数据的time部分转化为秒数,不会关心date谁大谁小,所以要比较两个datetime数据,先得TimeDiff一下,再转化为秒数,即开头写的:
Salin selepas log masuk
<strong>SELECT TIME_TO_SEC(TIMEDIFF(&#39;2009-02-09 11:24:46&#39;,&#39;2009-02-09 10:23:46&#39;));</strong>
Salin selepas log masuk
bitsCN.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan