如何确定出生日期之间的差异?
+----------+----------+------------+
|身份证|姓名|出生|
+----------+----------+------------+
|00001 |爪| 2010-04-17|
|00002 |爪| 2010-01-31|
|00003 |爪| 2009-11-31|
|00004 |爪| 2009-09-31|
|00005 |爪| 2009-07-31|
|00006 |爪| 2008-10-31|
+----------+----------+------------+
我想得到这个:

+----------+----------+------------+------------------------------------------+

|身份证|姓名|出生|
差异|
+----------+----------+------------+------------------------------------------+
|00001 |爪| 2010-04-17|
差异(id1-id2)=2010-01-31-
2010年4月17日|
|00002 |爪| 2010-01-31|
差异(id2-id3)=2010-01-31-
2009年11月31日|
|00003 |爪| 2009-11-31|
差异(id3-id4)=2010-01-31-
2009年9月31日|
如果可能,按差异说明订购
谢谢你的帮助
维拉

最佳答案

看起来您需要使用datediff函数,该函数返回两个日期(以天为单位)之间的差异。如果希望差异始终为正值,则应用abs函数。
此外,看起来您希望将表连接到自身以获取与当前表相关的行(关系定义为related_row.id=row.id+1)。
如果不进一步了解表定义是什么,或者不知道希望如何显示差异,则示例查询可能如下所示。

select
   t.id,
   t.name,
   t.birth,
   abs(datediff(t.birth,t2.birth)) as diff
from table t
inner join table t2 on (t.id+1) = t2.id
order by abs(datediff(t.birth,t2.birth)) desc

关于php - 如何确定同一列中日期之间的差异?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2708557/

10-13 02:36