用sql查询当天,一周,一个月的数据

用sql查询当天,一周,一个月的数据

 

数据查询,不管在网站还是在系统,都很常见,下文是介绍最常见的以日期查询的语句

select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0   //查询当天日期在一周年的数据

 

select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0   //查询当天的所有数据

 

--查询当天: 

select * from info where DateDiff(dd,datetime,getdate())=0 

 

--查询24小时内的: 

select * from info where DateDiff(hh,datetime,getDate())<=24 

 

--info为表名,datetime为数据库中的字段值

 

--查询当天:

select * from info where DateDiff(dd,datetime,getdate())=0

 

--查询24小时内的:

select * from info where DateDiff(hh,datetime,getDate())<=24

 

--info为表名,datetime为数据库中的字段值

 

Sql代码

--查询当天记录另类的方法 

SELECT * 

FROM j_GradeShop 

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ’ 00:00:00.000’) 

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ’ 00:00:00.000’) + 1) 

ORDER BY GAddTime DESC

 

--查询当天记录另类的方法

SELECT *

FROM j_GradeShop

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ’ 00:00:00.000’)

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ’ 00:00:00.000’) + 1)

ORDER BY GAddTime DESC

 

DATEDIFF 函数:

 

语法:

 

DATEDIFF ( datepart , startdate , enddate )

 

备注:enddate 减去 startdate。如果 startdate 晚于 enddate,则返回负值。

 

如果结果超出整数值范围,则 DATEDIFF 将产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

 

跨分钟、秒和毫秒等边界计算的方法使得 DATEDIFF 指定的结果在所有数据类型中均一致。结果是带正负号的整数值,它等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。

 

可以再MSSQL中测试:

 

Sql代码

--两个时间差刚好是24 

--打印的方式 

print dateDiff(hh,’2009-1-1 0:0:0’,’2009-1-2 0:0:0’) 

 

--查询的方式 

print dateDiff(hh,’2009-1-1 0:0:0’,’2009-1-2 0:0:0’)

 

--两个时间差刚好是24

--打印的方式

print dateDiff(hh,’2009-1-1 0:0:0’,’2009-1-2 0:0:0’)

 

--查询的方式

print dateDiff(hh,’2009-1-1 0:0:0’,’2009-1-2 0:0:0’)

 

Sql代码

--本月记录 

SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0 

 

--本周记录 

SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0 

 

--包括本年这些查询方式是一样的

 

--本月记录

SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0

 

--本周记录

SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0

 

sql server中的时间函数

 

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’)

 

函数 参数/功能

GetDate( ) 返回系统目前的日期与时间

DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1

DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期

DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值

DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称

 

参数 interval的设定值如下:

 

值 缩 写(Sql Server) Access 和 ASP 说明

Year Yy yyyy 年 1753 ~ 9999

Quarter Qq q 季 1 ~ 4

Month Mm m 月1 ~ 12

Day of year Dy y 一年的日数,一年中的第几日 1-366

Day Dd d 日,1-31

Weekday Dw w 一周的日数,一周中的第几日 1-7

Week Wk ww 周,一年中的第几周 0 ~ 51

Hour Hh h 时0 ~ 23

Minute Mi n 分钟0 ~ 59

Second Ss s 秒 0 ~ 59

Millisecond Ms - 毫秒 0 ~ 999

 

access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似

 

举例:

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年

转自:http://www.2cto.com/database/201305/207629.html

时间: 2024-10-03 18:54:10

用sql查询当天,一周,一个月的数据的相关文章

sql server 2008如何根据一个表中数据去查询另一个表的数据?

问题描述 sql server 2008如何根据一个表中数据去查询另一个表的数据? 现在我有三个表,表A有11列,其中有一列用来记录员工的id,一列是记录类型的Id,现在我要查询出表A的所有数据,但同时我要通过员工的id去查询出表B的员工名,通过类型的id,去查询出表C中的类型详情,最后我要得到的数据就是表A中除了员工id和类型id的数据外的9列数据,加上表B的员工名和表C的类型详情,请问这样的SQL语句要如何写? 解决方案 用一个表的数据更新另一个表Sql ServerSQL server中将

mysql日期查询sql语句总结(查询一天,查询一周,查询一个月的数据)

我的日期 首先我们获取到的日期格式是这样的:2009-2-12或者2009-3-3或者2009-10-12,我们在组合sql语句的时候可以这样:(分了三个例子)  代码如下 复制代码 @1select * from user where birthday>'2009-2-3' and birthday<'2009-4-3' 这样我们能够查到所有包括2009-2-3并且大于2009-2-3的所有的用户信息. @2如果我们是这样组合的  代码如下 复制代码 select * from user w

SQL按照日、周、月、年统计数据的方法分享_MsSql

--按日 select sum(consume),day([date]) from consume_record where year([date]) = '2006' group by day([date]) --按周quarter select sum(consume),datename(week,[date]) from consume_record where year([date]) = '2006' group by datename(week,[date]) --按月 select

SQL按照日、周、月、年统计数据的方法分享

--按日 select sum(consume),day([date]) from consume_record where year([date]) = '2006' group by day([date]) --按周quarter select sum(consume),datename(week,[date]) from consume_record where year([date]) = '2006' group by datename(week,[date]) --按月 select

sql查询中用last_day时少最后一天的数据

问题描述 像上面这个表 用sql :select * from emp where hiredate<=last_day(to_date('2011'||'-'||to_char('4'),'yyyy-MM'))查询时只要是2011-4-30 后面小时的就查不出来 即使查出来也少数据 help  问题补充:to_date(<br />                              to_char( <br />                           

android sqlite查询最近一个月的所有数据怎么查

问题描述 android sqlite查询最近一个月的所有数据怎么查 sqlite我想查最近一个月的数据怎么写?也就是查询今天2016.04.19到上个月2016.03.19的所有数据 表名:work 列名:int id varchar workName timestamp starttime timestamp endtime 怎么查?求大神. 解决方案 select * from work where 日期字段 between date('now', "-1 month") and

MySQL 仅保留7天、一个月数据

/************************************************************************** * MySQL 仅保留7天.一个月数据 * 说明: * 嵌入式产品作为数据才采集的终端,其数据一般不会保留太多.太长时间,一 * 般来说都是保留最近7天.一个月的数据就够了,主要是考虑到存储空间的问题, * 本文记录一下MySQL的日期建表方式和数据查询方面的SQL语句. * * 2016-11-21 深圳 南山平山村 曾剑锋 *********

分析百度最近一个月的SEO数据风向标

大家好,我是梁磊,SEO数据风向标大家都不会陌生,通过分析SEO数据风向标可以很好的了解最近百度算法的大致动态,SEO数据分析必须建立在大量数据统计的基础上,因此几个站点不能说明什么问题,若通过几个站点分析数据显然是不科学的,做科学的SEO数据分析是我们这些SEO人员必须学习的,笔者感觉现在许多SEO新人们都不太喜欢去分析数据,盲目的反复执行不能做好SEO,从6月份开始百度就让我们无法淡定了.下面是笔者对最近一个月.最近一周.上一周的SEO数据风向标截图,从这些数据我们可以分析百度新算法的实际效

SQL查询入门(上篇) 推荐收藏_MsSql

SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句.但对于大多数开发者来说,使用SQL查询数据库并没有一个抽象的过程和一个合理的步骤,这很可能会使在写一些特定的SQL查询语句来解决特定问题时被"卡"住,本系列文章主要讲述SQL查询时一些基本的理论,以及写查询语句的抽象思路. SQL查询简介 SQL语言起源于1970年E.J.Codd发表的关系数据库理论,所以SQL是为关系数据库服务的.而对于SQL查询,是指从数据库中取得数据的子集,这句话貌似听着有些晦