SQL数据库中如何比较两条的日期:并查询间隔

SQL数据库中如何比较两条的日期:并查询间隔,第1张

将两个日期赋值给两个变量,然后去比较,当然,也可以写成一个语句,那会比较长。

字段名你都没有提供,我就下面写,你自己改。

declare @a as datetime

declare @b as datetime

select @a = Cdate from 表名 where lid=1

select @b = Cdate from 表名 where lid=2

select abs(datediff(day,@a,@b))

取了变量,用datediff,以day天数比较,然后可能会产生负数,取个绝对值。

我们通常使用的表之间的联接是等值联接;你的情况需要使用外联接来做。 我按照你的意思分别见了table1,table2,table0(对应你的table表),并把你的数据也增加进去了。 执行下面的SQL可能会得到你想要的结果: (selecttable1.hm,table1.no1,table2.no2fromtable1fullouterjointable2on(table1.hm=table2.hm)wheretable1.hmisnotnull) union (selecttable2.hm,table1.no1,table2.no2fromtable1fullouterjointable2on(table1.hm=table2.hm)wheretable2.hmisnotnull) 输出结果如下:

希望是你想要的! 刚才没用到table0表,如果保证hm的值必须在table0中,如要修改上面的SQL如下: select*from(selecttable1.hmashm,table1.no1,table2.no2fromtable1fullouterjointable2on(table1.hm=table2.hm)wheretable1.hmisnotnull union selecttable2.hmashm,table1.no1,table2.no2fromtable1fullouterjointable2on(table1.hm=table2.hm)wheretable2.hmisnotnull)astwheret.hmin(selecthmfromtable0) 这样,当table1,table2中的hm值不在table0表中,查询结果就不会出现。 外联接,包括左外联接、右外联接、全外联接的确大多数的程序员都不使用。宁肯用很长的程序代码来实现,但是用数据库sql来实现其实效率是最快的。 建议你了解外联接的知识。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6780340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存