Heim > Datenbank > MySQL-Tutorial > mySQL的datetime的时间间隔_MySQL

mySQL的datetime的时间间隔_MySQL

WBOY
Freigeben: 2016-06-01 13:18:25
Original
756 Leute haben es durchsucht

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')
Nach dem Login kopieren
/01:01:00
SELECT TIME_TO_SEC('01:01:00')
Nach dem Login kopieren
Nach dem Login kopieren
/3660
因此便知两个datetime数据之间相差的秒数。
Nach dem Login kopieren
如果我们考虑这两个datetime数据先用TIME_TO_SEC转化为各自秒数,再来相减,不是一样的效果吗?
Nach dem Login kopieren
SELECT TIME_TO_SEC('2009-02-09 11:24:46')-TIME_TO_SEC('2009-02-09 10:23:46')
Nach dem Login kopieren
3660
Nach dem Login kopieren
Nach dem Login kopieren
看似这种方法也ok,不过我们再观察一组数据,你就清楚为什么不能用这种方式来比较两个datetime数据之间的时间间隔了。
Nach dem Login kopieren
我们现在改用&#39;2009-02-<strong>08</strong> 11:24:46&#39;和&#39;2009-02-09 10:23:46&#39;比较:
Nach dem Login kopieren
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;)
Nach dem Login kopieren
3660
Nach dem Login kopieren
Nach dem Login kopieren
奇怪了,左边参数已经比右边参数提早一天了,为什么秒数相减还是正值呢?
Nach dem Login kopieren
原来,TIME_TO_SEC只会把datetime数据的time部分转化为秒数,不会关心date谁大谁小,所以要比较两个datetime数据,先得TimeDiff一下,再转化为秒数,即开头写的:
Nach dem Login kopieren
<strong>SELECT TIME_TO_SEC(TIMEDIFF(&#39;2009-02-09 11:24:46&#39;,&#39;2009-02-09 10:23:46&#39;));</strong>
Nach dem Login kopieren
bitsCN.com
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage