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 查询条件