SQL SERVER学习笔记之时间日期查询

本文介绍了SQL中查询时间范围数据、计算时间差、获取最大值、最小值和平均值的方法,以及如何进行关系表查询。通过实例展示了如何使用BETWEEN操作符、DATEDIFF函数以及INNER JOIN来高效地从数据库中获取所需信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.查询最近一段时间(1天,1一个月,一年)的数据

语法

select * from 表名 where 时间列名>=DateAdd(m,-1,getdate())     

最近一个月,之前的用-,将来的用+,
DateAdd第一个参数可选值:

year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

2.查询某时间范围内的数据

语法

select * from 表名 where 时间列名 BETWEEN '开始时间' and '结束时间'

3.查询本月,本年,本周,今天的数据

语法

SELECT * FROM 表名 where DATEDIFF(year,时间列名,GETDATE())=0

DATEDIFF第一个参数可选值:

year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

4. 根据条件查询两个日期的时间差

语法

SELECT DATEDIFF ( DAY , 开始时间列名 , 结束时间列名 ) from 表名 where 条件

5.查询某列数据的最大值,最小值,平均值(单语句单次查询)

语法

SELECT top 1 * FROM 表名 where 查询条件 order by 查询列 desc      //最大值
SELECT top 1 * FROM 表名 where 查询条件 order by 查询列 asc      //最大值
SELECT AVG (查询列) from 表名 where  查询条件     //平均值

(单语句多次查询)

 SELECT MAX  (查询列) as 最大值, 
        MIN (查询列) as 最小值,
        AVG (查询列) as 平均值 
 from 表名 where  查询条件

如果是查询两个时间差的平均值,最大值,最小值
换算成一个单位,比如秒

SELECT MAX (DATEDIFF(s,开始时间,结束时间)) as 最长用时,
       MIN(DATEDIFF(s,开始时间,结束时间)) as 最短用时 , 
       AVG(DATEDIFF(s,开始时间,结束时间)) as 平均用时
from 表名 where  查询条件

6.关系表查询

select * from 表a inner join 表b on 关联的列 where 查询条件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值