
你是这个意思吧:
查询这样的一条数据:存在另外一条数据的时间项和它的时间项相差在5分钟以内。
这个主要是处理日期函数,我用Oracle数据库做,
首先建立测试表:
create table test26
(
mydate date
)
然后插入测试数据:
insert all
into test26 values(to_date('2010-04-01 12:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-01 12:03:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-02 12:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-03 14:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-03 14:01:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-03 14:02:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-06 12:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-07 11:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-07 11:04:59','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-08 12:00:00','yyyy-mm-dd hh24:mi:ss'))
select from dual
然后查询这样的一条数据:存在另外一条数据和它相差在5分钟以内。
select to_char(t1mydate,'yyyy-mm-dd hh24:mi:ss') from test26 t1
where exists
(
select from test26 t2 where
((t1mydate-t2mydate)<(1/(2412)) and t1mydate>t2mydate)
or ((t2mydate-t1mydate)<(1/(2412)) and t2mydate>t1mydate)
and t1mydate<>t2mydate
)
order by t1mydate
结果为:
TO_CHAR(T1MYDATE,'YYYY-MM-DDHH24:MI:SS')
2010-04-01 12:00:00
2010-04-01 12:03:00
2010-04-03 14:00:00
2010-04-03 14:01:00
2010-04-03 14:02:00
2010-04-07 11:00:00
2010-04-07 11:04:59
不同数据库的日期处理函数不一样,还有什么问题给我留言,OK?
--2 使用游标将SPJ表中的偶数行输出。
if OBJECT_ID('tmp_yy') is not null drop table tmp_yy
select ,ROW_NUMBER() over (order by qty)1 aa into tmp_yy
from spj
--select from tmp_yy
declare @i nvarchar(50)
declare @sql nvarchar(max)
declare cursor1 cursor for
select aa from tmp_yy
open cursor1
fetch next from cursor1 into @i
while @@fetch_status=0
begin
if (@i%2)100=0 and @i>1
begin
set @sql='select sno,pno,jno,qty from tmp_yy where aa='+@i
end
else
exec (@sql)
fetch next from cursor1 into @i
end
close cursor1
deallocate cursor1
--6.创建存储过程,根据用户指定的供应商号删除SPJ表中相应的供货信息。
create proc uspdeleteSPJ
@SNO nvarchar(5)
as
begin
delete from spj where sno=@SNO
end
--exec uspdeleteSPJ 's1'
--7.创建存储过程,将指定零件的重量增加指定的值。
create proc uspaddP
@pno nvarchar(5),
@weight int
as
begin
update p表 set weight=weight+@weight where pno=@pno
end
exec uspaddP 'p1',10
--8.用触发器实现约束:如果是北京的供应商,供应任何零件的数量不能少于300,
--如果少于则自动改为300。
alter TRIGGER triggerSB ON spj
FOR insert
AS
if(SELECT COUNT() FROM inserted WHERE QTY <300)>0
BEGIN
update spj set QTY=300
WHERE QTY <300
commit TRANSACTION
END
GO
select adingzhi-bqvxiao from
(select count() as dingzhi from tb where [用户id]='001' and [用户订购关系]=1) a,
(select count() as qvxiao from tb where [用户id]='001' and [用户订购关系]=2) b
=============================
给你个思路,
用存储过程解决,先建个临时表#tb_yuanlai将原来的表拷贝进去,
然后在原来的表中用select distinct [用户id] from 原来表语句在建立个临时表#tb,然后用游标将临时表中#tb中一条条的[用户id]数据取出来用最上面的语句去减,并判断将结果,最后在写入一个新的临时表中,用select 语句返回这个最终临时表的所有结果即可。
我暂时只想到这个方法,有不妥之处还请高手们指点了。希望能帮到你
不知道你什么数据库
如果
Oracle
,
倒是很省事。
创建一个序列号,
2个表共用。
A表插入的时候,取
下一个序列号,
B表插入的时候,取当前序列号。
如果是
SQL
Server
或者
MySQL
这种,用数据库系统自增的。
就自己控制好,别插入一条A,再插入两条B这种情况发生。
不过如果发生异常,还是会导致不匹配的。
例如首先插入A,
某些
Check
没通过,数据没插入,但是那个自增的ID可能被递增了。
想返回表A中最大的id和表B中最大的id的差值
倒是很简单
SELECT
MAX(Aid)
-
MAX(Bid)
AS
差值
FROM
A
FULL
JOIN
B
ON
(Aid
=
Bid)
select TO_DATE(TO_CHAR(sysdate,'YYYYMMDD'),'YYYYMMDD') - TO_DATE(表字段,'YYYYMMDD') from 表名;
表名和表字段根据具体情况而定,
还有
date1为数据库里输入数据时的时间,date2为当前系统时间
应该是反的,date1应该是当前系统时间,date2是数据库里输入数据时的时间
SQL数据库语句大全:
1、选择:selectfromtable1where范围
2、插入:insertintotable1(field1,field2)values(value1,value2)
3、删除:deletefromtable1where范围
4、更新:updatetable1setfield1=value1where范围
5、排序:selectfromtable1orderbyfield1,field2[desc]
6、总数:selectcountastotalcountfromtable1
7、求和:selectsum(field1)assumvaluefromtable1
几个高级查询运算词:
A、UNION运算符
UNION运算符通过组合其他两个结果表(例如TABLE1和TABLE2)并消去表中任何重复行而派生出一个结果表。当ALL随UNION一起使用时(即UNIONALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1就是来自TABLE2。
B、EXCEPT运算符
EXCEPT运算符通过包括所有在TABLE1中但不在TABLE2中的行并消除所有重复行而派生出一个结果表。当ALL随EXCEPT一起使用时(EXCEPTALL),不消除重复行。
C、INTERSECT运算符
INTERSECT运算符通过只包括TABLE1和TABLE2中都有的行并消除所有重复行而派生出一个结果表。当ALL随INTERSECT一起使用时(INTERSECTALL),不消除重复行。
以上就是关于如何用SQL语句筛选相差5分钟以内的所有数据全部的内容,包括:如何用SQL语句筛选相差5分钟以内的所有数据、数据库用T—SQL写下列语句、sql 求差等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)