如何利用SQl语句比较两个同一个号码时间的前后?
比如A表:字段:Serial_Number=123456,Date_Time=2014-7-2917:34:36,B表字段:Serial_Number=123456,Da...
比如A表:字段:Serial_Number=123456,Date_Time=2014-7-29 17:34:36,B表字段:Serial_Number=123456,Date_Time=2014-7-29 17:38:36。如何利用SQL语句直接比较时间的前后,谢谢各路大神。
比较之后返回一个结果,如果A>B,返回一个True,否则返回Flase 展开
比较之后返回一个结果,如果A>B,返回一个True,否则返回Flase 展开
3个回答
展开全部
你是想干什么?比较大小后显示什么还是什么意思?比如A比B大显示A,B比A大显示B,一样大显示空,是类似这个意思么?时间可以直接比较的。
select case when A.Date_Time>B.Date_Time then A, when A.Date_Time>B.Date_Time then B else null end date_time from A,B where A.Serial_Number=B.Serial_Number and A.Serial_Number=123456
如果仅仅是比较二者的大小,那么比如A>B,怎么样,A<B则不行,那么直接在where后比较就好了。
select * from A,B where A.Serial_Number=B.Serial_Number and A.Serial_Number=123456 and A.Date_Time>B.Date_Time
select case when A.Date_Time>B.Date_Time then A, when A.Date_Time>B.Date_Time then B else null end date_time from A,B where A.Serial_Number=B.Serial_Number and A.Serial_Number=123456
如果仅仅是比较二者的大小,那么比如A>B,怎么样,A<B则不行,那么直接在where后比较就好了。
select * from A,B where A.Serial_Number=B.Serial_Number and A.Serial_Number=123456 and A.Date_Time>B.Date_Time
追问
比较之后返回一个结果,如果A>B,返回一个True,否则返回Flase
追答
那就用第一个,另外还有一种情况要考虑那就是A=B
select case when A.Date_Time>B.Date_Time then ‘ture’, when A.Date_Time>B.Date_Time then ‘flase’ else null end ab from A,B where A.Serial_Number=B.Serial_Number and A.Serial_Number=123456
展开全部
Serial_Number 这个字段是不是a,b表的主键或者唯一键,如果是的话可以使用。
select A.Date_Time - b.Date_Time
from a ,b
where a.Serial_Number=123456
and b.Serial_Number=123456
如果不能确保唯一或者一定有数据,则可以使用集合函数
select MAX(A.Date_Time) - max(b.Date_Time)
from a ,b
where a.Serial_Number=123456
and b.Serial_Number=123456
select A.Date_Time - b.Date_Time
from a ,b
where a.Serial_Number=123456
and b.Serial_Number=123456
如果不能确保唯一或者一定有数据,则可以使用集合函数
select MAX(A.Date_Time) - max(b.Date_Time)
from a ,b
where a.Serial_Number=123456
and b.Serial_Number=123456
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询