【收集】sql查询统计,周,月,年

昨天

select * from tb where datediff(day, 时间字段 ,getdate()) = 1

今天

select * from tb where datediff(day, 时间字段 ,getdate()) = 0

本周

select * from tb where datediff(week, 时间字段 ,getdate()) = 0

上周

select * from tb where datediff(week, 时间字段 ,getdate()) = 1

下周

select * from tb where datediff(week, 时间字段 ,getdate()) = -1

上月

Select * From TableName Where DateDiff(month, DateTimCol, GetDate()) = 1

本月

Select * From TableName Where DateDiff(month, DateTimCol, GetDate()) = 0

下月

Select * From TableName Where DateDiff(month, GetDate(), DateTimCol ) = -1

本年

Select * From TableName Where DateDiff(year, GetDate(), DateTimCol ) = 0

昨天:dateadd(day,-1,getdate())

明天:dateadd(day,1,getdate())

上月:month(dateadd(month, -1, getdate()))

本月:month(getdate())

下月:month(dateadd(month, 1, getdate()))

昨天 

Select * From TableName Where DateDiff(dd, DateTimCol, GetDate()) = 1

明天

Select * From TableName Where DateDiff(dd, GetDate(), DateTimCol) = -1

最近七天

Select * From TableName Where DateDiff(dd, DateTimCol, GetDate()) <= 7

随后七天

当前年

select  提出日期, datepart(year,getdate()) as  当前年 from 供方资料表

前一年

select  提出日期, datepart(year,getdate())-1 as  当前年 from 供方资料表

后一年

select  提出日期, datepart(year,getdate())+1 as  当前年 from 供方资料表

SQL 日期函数
1.   当前系统日期、时间
     select getdate()

2. dateadd   在向指定日期加上一段时间的基础上,返回新的 datetime 值
    例如:向日期加上2天
    select dateadd(day,2,‘2004-10-15′)   –返回:2004-10-17 00:00:00.000

3. datediff 返回跨两个指定日期的日期和时间边界数。
    select datediff(day,‘2004-09-01′,‘2004-09-18′)    –返回:17

4. datepart 返回代表指定日期的指定日期部分的整数。
   SELECT DATEPART(month, ‘2004-10-15′)   –返回 10

5. datename 返回代表指定日期的指定日期部分的字符串
    SELECT datename(weekday, ‘2004-10-15′)   –返回:星期五

6. day(), month(),year() –可以与datepart对照一下

select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)

select datename(dw,‘2004-10-15′)

select 本年第多少周=datename(week,‘2004-10-15′)
       ,今天是周几=datename(weekday,‘2004-10-15′)

举例:
1.GetDate() 用于sql server :select GetDate()

2.DateDiff(‘s‘,‘2005-07-20′,‘2005-7-25 22:56:32′)返回值为 514592 秒
DateDiff(‘d‘,‘2005-07-20′,‘2005-7-25 22:56:32′)返回值为 5 天

3.DatePart(‘w‘,‘2005-7-25 22:56:32′)返回值为 2 即星期一(周日为1,周六为7)
DatePart(‘d‘,‘2005-7-25 22:56:32′)返回值为 25即25号
DatePart(‘y‘,‘2005-7-25 22:56:32′)返回值为 206即这一年中第206天
DatePart(‘yyyy‘,‘2005-7-25 22:56:32′)返回值为 2005即2005年

时间: 2024-10-05 10:04:24

【收集】sql查询统计,周,月,年的相关文章

SQL查询一周

查询一周数据select * from apk_news where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < = date(addtime); NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 EXTRACT() 返回日期/时间按的单独部分 DATE_ADD() 给日期添加指定的时间间隔 DATE_SUB() 从日期减去指定的时间间隔 DATEDIFF(

SQL查询(周、月、季、年)第一天和最后一天

SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)  /*本周第一天*/ SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)  /*本月第一天*/ SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)  /*本季第一天*/ SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) /*本年第一天*/ Select dateadd(

mysql 查询,天,周,月等写法

1.查询当天的数据 select * from 表名 where TO_DAYS(时间字段)=TO_DAYS(NOW()); 2.查询当周的数据 select * from 表名 where YEARWEEK(DATE_FORMAT(时间字段,'%Y-%m-%d'))=YEARWEEK(NOW()); 3.查询当月的数据 select * from 表名 where DATE_FORMAT(时间字段,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m'); 4.查询昨天的数据

用sql语句按周、按月、按季、按年统计

--按mySql语法统计按周,月,季,年.income为合计的价格字段,createDate为交易时间. select sum(income)as revenue,week(createDate) as week,month(createDate) as month, quarter(createDate)as quarter,year(createDate)as year from employee where year(createDate) >= '2006' group by week(

用sql语句按周、按月、按季、按年统

原文地址:http://hi.baidu.com/%BD%F0%D3%F1kl_y/blog/item/1c368ffba9388476024f5645.html --按mySql语法统计按周,月,季,年.income为合计的价格字段,createDate为交易时间. select sum(income)as revenue,week(createDate) as week,month(createDate) as month, quarter(createDate)as quarter,yea

SQL查询将数据按字段(2017-08-15 11:34:05)进行按月分组

关于进行sql查询按字段me_createTime按月进行排序 使用函数:date_format 按月进行分组查询,并按月进行排序 上代码 $sql="select date_format(me_createTime,'%Y-%m')as create_month,count(me_id) as me_num from {$SETTING['db']['prefix']}member where me_state in(1,2) and sm_id='$sm_id' group by date_

MySql按周/月/日分组统计数据的方法

知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(create_time,'%Y%m') month

通过手动创建统计信息优化sql查询性能案例

本质原因在于:SQL Server 统计信息只包含复合索引的第一个列的信息,而不包含复合索引数据组合的信息 来源于工作中的一个实际问题, 这里是组合列数据不均匀导致查询无法预估数据行数,从而导致无法选择合理的执行计划导致性能低下的情况 我这里把问题简单化,主要是为了说明问题 如下一张业务表,主要看两个“状态”字段,BusinessStatus1 和 BusinessStatus2 create table BusinessTable ( Id int identity(1,1), Col2 va

sql 分组统计查询并横纵坐标转换

关于sql 分组统计查询,我们在做报表的时候经常需要用到;今天就在这里整理下; 先附上一段sql代码: if object_id(N'#mytb',N'U') is not null drop table #mytbgodeclare @Year intset @Year=2014create table #mytb ([Date] int,[Count] int,[Price] decimal(18, 0),[spbm] varchar(50),[sppp] varchar(100),[spm