将两个日期赋值给两个变量,然后去比较,当然,也可以写成一个语句,那会比较长。
字段名你都没有提供,我就下面写,你自己改。
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天数比较,然后可能会产生负数,取个绝对值。
select datediff(day,‘2010-12-1’,‘2010-12-3’)
返回的结果是 2
当然你也可以从表中选择出来的两个的字段,
SELECT datediff(day,date1,date2) FROM date_dbdate_table
返回的是 date2-date1 之间的天数
上面是计算的是在数据库date_db中表date_table中时间时段date1与date2之间的相隔天数
你的时间保存数据类型是什么?date么?如果是date,判断时间点所属范围,如果开始时间属于14-18,结束时间属于9-12,并且时间相减的结果大于1,那么就可以得到结果为,时间相减(得到答案为天)24-时间相减取整数(trunc)17+2,如果如果开始时间属于14-18,结束时间属于9-12,并且时间相减的结果小于1,那么结果为,时间相减(得到答案为天)24-15,其他情况均为时间相减(得到答案为天)24-时间相减取整数(trunc)17。
注:时间相减得到的应该是带有小数的。(这些是可以用case when语句搞定的,不过日期这块可能还需要调整,我仅仅靠想象是想不出来了,还要靠你自己试验)
如果是字符类型的,那么就用 to_date转一下,或者直接计算减法都可以,具体的判断和上面差不多。
create view select funcA() a, from xxx
在该函数 FuncA 中:
因为在函数中本身是不能有dml *** 作的,但我们可以这样实现,参考下面的 存储过程的实现
SQL> select from test1;
A B
---------- --------------------
1 1
3 3
2 2
SQL>
SQL> CREATE or replace PROCEDURE insert_test
2 as
3 PRAGMA AUTONOMOUS_TRANSACTION;
4 BEGIN
5 insert into test1 values(6,6);
6 rollback;
7 END;
8 /
过程已创建。
SQL> begin
2 insert into test1 values(5,5);
3 insert_test;
4 commit;
5 end;
6 /
PL/SQL 过程已成功完成。
SQL> select from test1;
A B
---------- --------------------
1 1
3 3
2 2
5 5
SQL>
这样在函数中可以进行dml *** 作并提交或者回退
然后前台查询的人的信息于是被保留在了数据库中
参考这里>
SQL存在between and,<,>关键字
下面介绍:between and 大于,小于 用法用法;
SQL 如下:
声明变量,declare @T1 date,@T2 datetime,@T3 date
set @T1='2015-08-09'
set @T3='2015-08-12'
set @T2='2015-08-09 08:00:00’
select from Table where convert(date,'2015-08-09 09:00:00)<@T1
select from Table where datetest between @T and @T3
select from Table where datetest>@T and datetest< @T3
以上就是关于SQL数据库中如何比较两条的日期:并查询间隔全部的内容,包括:SQL数据库中如何比较两条的日期:并查询间隔、SQL 数据库如何计算两个日期的简隔时间,以下图为例!、oracle db 如何用一条sql查询2个时间之间的工作时间间隔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)