SQL怎么查询一行数据里两个日期差的天数

详细一点比如说:有一个简单的数据库,有 4列,分别是ID(P_K,int类型),name(varchar),begintime(datetime),endtime(datetime)。有N行数据,现在要显示本月日期差最长的3个的ID。
怎么写查询语句啊? 在详细一点,比如开始时间和结束时间差最长但是不是本月的时间差不显示,只显示本月内时间差最长的3个。
大虾来帮帮我啊!能解决的话加分100.谢谢。

第1个回答  2011-04-11
要用到日期函数datediff(day,begintime,endtime),
还要把月份转化出来判断是否想到,有点麻烦额
第2个回答  2011-04-11
select top 3 datediff(d,begintime, endtime),* from table where begintime >= convert(datetime, '2011-04-01',121) and endtime <= convert(datetime, '2011-04-30',121)
order by datediff(d,begintime, endtime) desc
以上是SQLSERVER数据库语法
第3个回答  2011-04-11
select top 3 id
from tb
where datediff(mm,begintime,endtime) = 0 and datepart(mm,endtime)=datepart(mm,getdate())
order by datediff(ss,begintime,endtime) desc本回答被网友采纳
第4个回答  2020-04-19
datediff(day/month/year,startdate,enddate)
日期函数:(要返回的天数/月数/年数,开始日期,结束日期)
select
1,2,datediff(day,1,2)
天数
from
aa
第5个回答  2011-04-11

SQL怎么查询一行数据里两个日期差的天数
要用到日期函数datediff(day,begintime,endtime),还要把月份转化出来判断是否想到,有点麻烦额

SQL 查询计算剩余多少天
```其中,`GETDATE()` 函数获取当前日期,`CAST(zt2 AS DATE)` 将 `zt2` 字段转换为日期类型,`DATEDIFF(DAY, GETDATE(), CAST(zt2 AS DATE))` 计算两个日期之间的天数差。请注意,此查询语句假设 `zt2` 字段是一个合法的日期字符串,并且 `kh_kehu` 表中只有一行数据。如果表中有多行数...

求sql语句。得出表中两列相减的值
1、语句如下:select A, B, A-B as C from 表1 2、计算列:可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。语句中的A-B就是计算列,as C的意思是给这个计算列起个列名叫C。...

SQL 日期序列拆分
最终的SQL查询结果如下:select start_date ,end_date ,date_add(start_date,id) as target_date from tmp.table lateral view posexplode(split(space(datediff(end_date,start_date)),' ')) t as id,data 其中id为拆分的序号,data为拆分后的日期内容。

在SQL我想在数据库里查询相同字段在不同时间的对比在一行显示。
select t1.*, t2.from (select run_date,1,2,3 from 表 where run_date='2012.12.29') t1 cross join (select run_date,1,2,3 from 表 wehre run_date='2013.12.29') t2 如果t1与t2选出的不是一行,那把cross去掉,自己加上on后的连接条件 ...

SQL怎么查询表(包含id,,,时间)相邻几行数据中,时间列时间差在一定的范围...
应该不算复杂,思路可以是这样:得到一条记录,作为基准参照时间。筛选条件为: 当前时间 < 基准参照时间+时间间隔 对满足条件的记录集取Min(id)就可以了。基准参照时间+时间间隔 可以使用DateAdd函数。你可以再思考一下 ,希望对你有所启发 :)...

sql中如何查询表中一行数据中的两列数据与另一行相同列数据的数据相反...
这个主要关注表的自连接就可以了,下面是SQL select a1.A,a1.B from tb1 a1,tb1 a2 where (a1.num+a2.num)=4 and a1.a=a2.b and a1.b=a2.a 可以达到你要的结果

sql查询相邻两条记录间的数据增加或减少值
你可以通过建立临时表来实现吧!通过查询原来的数据库,建立两个临时表。临时表中添加一个字段作为顺序标签。第一个临时表中顺序标签是0开始,第二个临时表从1开始。然后两个表直接通过顺序标签这一列进行内联,这样不就能直接计算增量值了啊。在查询的时候还能直接把其他相关的时间等信息都带出来。注意...

sql查询语句同一表中,不同行之间字段相减
形成一个临时表 再从这个临时表 分组得出 A列 COUNT (2) 和最小主键值(递增int列) 形成一个临时查询表TMP 然后取出TABLE里的A列 去JION 当 TMP.COUNT =2的 A 主键列 如果主键不是最小主键 那么作为被减数 最小的作为减数 可以得出你要的A和D COUNT=1的 直接用 NOW去减 ...

sql 行之间的运算
SQL Server数据中运算符与表达式

相似回答