`

SQL 查询当天,本月,本周的记录

阅读更多

SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111)   ORDER BY dateandtime DESC

本月记录

 

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

 

 

本周记录

 

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

 

 

 

 

 

当天记录

SELECT * FROM 表 WHERE datediff(day,[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年

 

sql 查询本周本月问题
---求相差天数  
select   datediff(day,'2004-01-01',getdate())      
    
--1.一个月第一天的  
SELECT   DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0)  
    
--2.本周的星期一  
SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),   0)  
    
select   dateadd(wk,datediff(wk,0,getdate()),6)  
--3.一年的第一天  
SELECT   DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)  
    
--4.季度的第一天  
SELECT   DATEADD(qq,   DATEDIFF(qq,0,getdate()),   0)  
    
--5.当天的半夜  
SELECT   DATEADD(dd,   DATEDIFF(dd,0,getdate()),   0)  
    
--6.上个月的最后一天  
SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0))  
    
--7.去年的最后一天  
SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0))  
    
--8.本月的最后一天  
SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(m,0,getdate())+1,   0))  
    
--9.本年的最后一天  
SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate())+1,   0))  
    
--10.本月的第一个星期一  
select   DATEADD(wk,  
DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),   0)

--查询本周注册人数  
select   count(*)   from   [user]  
where   datediff(week,create_day-1,getdate())=0  
    
--上周注册人数  
select   count(*)   from   [user]  
where   datediff(week,create_day-1,getdate())=1  
    
    
--本月注册人数  
select   count(*)   from   [user]  
where   datediff(month,create_day,getdate())=0  
    
--上月注册人数  
select   count(*)   from   [user]  
where   datediff(month,create_day,getdate())=1  
  
--如果要效率,这样写查询  
    
--查询本周注册人数  
select   count(*)   from   [user]  
where   create_day>=dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
and   create_day<dateadd(day,9-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
    
--上周注册人数  
select   count(*)   from   [user]  
where   create_day>=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
and   create_day<dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
    
    
--本月注册人数  
select   count(*)   from   [user]  
where   create_day>=dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))  
and   create_day<dateadd(month,1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))  
    
--上月注册人数  
select   count(*)   from   [user]  
where   create_day>=dateadd(month,-1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))  
and   create_day<dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))  
  
--本周  
select   count(*)   from   User  
where   datediff(dd,create_day,getdate())   <=   datepart(dw,getdate())  
        
--上周  
select   count(*)   from   User  
where   datediff(dd,create_day,(getdate()   -   datepart(dw,getdate())))   <=   7  
    
--本月  
select   count(*)   from   User  
where   datepart(mm,create_day)   =   datepart(mm,getdate())  
--上月  
select   count(*)   from   User  
where   datepart(mm,create_day)   =   datepart(mm,getdate())   -   1
--本周  
select   count(*)   from   [User]  
where   datediff(dd,create_day,getdate())   <=   datepart(dw,getdate())  
        
--上周  
select   count(*)   from   [User]  
where   datediff(dd,create_day,(getdate()   -   datepart(dw,getdate())))   <=   7  
    
--本月  
select   count(*)   from   [User]  
where   datepart(mm,create_day)   =   datepart(mm,getdate())  
--上月  
select   count(*)   from   [User]  
where   datepart(mm,create_day)   =   datepart(mm,getdate())   -   1
学习  
month(create_day)=month(getdate())本月  
month(create_day)=month(getdate())-1   上月

补充 查询今日所有的
SELECT * from feedback WHERE (DATEDIFF(d,fedtime,GETDATE())=0) ORDER BY fedid DESC

 

Sql 取当天或当月的记录
表中的时间格式是这样的:2007-02-02 16:50:08.050, 如果直接和当天的时间比较,就总得不到准确数据,但是我们可以把这种格式的时间[格式化]成 2007-02-02,也就是只有年-月-日,然后把当天的时间也格式化成 年-月-日的格式.
这样,思路就出来了!
我们格式化日期要用到 Convert()这个函数,要用到3个参数,首先来格式化当天的日期,Convert(varchar(10),getDate(),120)
这样我们就可以把当天的日期格式化为: 2007-2-2,然后格式化数据库表中的日期
Convert(varchar(10),TimeFiled,120),最后我们就可以用一条Sql语句得到当天的数据了.
例如:

转自网络

 

程序代码
Select * From VIEW_CountBill Where Convert(varchar(10),[time],120) = Convert(varchar(10),getDate(),120)



注意:
Convert()函数中的各个参数的意义,第一个参数,varchar(10)是目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。第二个参数是你要转换的字段,我这里是[time]。最后一个就是格式了,这个值是可选的:20或者120都可以,它遵循的是[ODBC 规范],输入/输出样式为:yyyy-mm-dd hh:mm:ss[.fff]
具体的可以参考Sql Server的联机帮助!

======================================================
T-Sql查找表中当月的记录
思路:将要查找的时间字段用Month()函数取出其中的月份,然后再取出当前月的月份,对比就OK了
例:

程序代码
Select * From VIEW_CountBill Where Month([time]) = Month(getDate())
分享到:
评论

相关推荐

    Sql语句 查询本周记录\本月记录\本季度记录\本年记录

    SQL 语句查询本周记录、本月记录、本季度记录、本年记录是数据库查询中常见的操作。本文将为您提供 MySQL 和 SQL Server 两种数据库管理系统的查询语句,帮助您快速实现这些查询操作。 查询本周记录 MySQL 中,您...

    sql server 查询当天,本周,本月,本年,30天内的数据的sql语句

    sql server 查询当天,本周,本月,本年,30天内的数据的sql语句

    oracle SQL查询工具

    oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...

    SQL查询最新充值记录余额.xls

    SQL查询最新充值记录余额.xls

    sql查询表中某字段下所有重复的记录

    sql查询表中某字段下所有重复的记录,删除某字段下重复记录最小的那笔记录

    在C#中使用SQL查询指定数字的记录

    本文将深入探讨如何在C#中使用SQL查询来获取指定数字的记录,这通常涉及到数据库连接、SQL语句的构建以及数据的读取。我们将通过以下几个关键知识点来详细讲解这一过程: 1. **ADO.NET框架**:在C#中,我们主要依赖...

    sql查询重复记录方法大全

    ### SQL查询重复记录方法大全 在数据库管理与维护过程中,查询和处理重复记录是一项非常重要的工作。本文将详细介绍几种常见的SQL查询重复记录的方法,并提供具体的示例代码。 #### 方法一:查询具有重复值的记录...

    oracle消耗资源的sql查询语句记录

    ### Oracle消耗资源的SQL查询语句记录 在Oracle数据库管理中,监控和优化SQL查询是确保系统性能稳定的关键环节之一。对于那些消耗大量资源的SQL语句进行记录和分析可以帮助DBA快速定位问题并采取相应的优化措施。...

    SQL语句查询重复记录大全

    根据提供的标题、描述以及部分代码内容,我们可以整理出关于如何使用SQL语句查询及处理重复记录的相关知识点。本文将详细阐述这些知识点,并提供具体的SQL语句示例。 ### SQL语句查询所有重复记录 #### 1. 查询...

    SQL查询最新充值记录的余额.xls

    SQL查询最新充值记录的余额.xls

    SuperMap iObjects Java SQL查询中的分组查询

    这个范例主要是实现SQL查询中的分组查询,可以查询在一定的空间范围内各个地物的数目,这个在实践中很用的较广,比如查询某一区域内A类建筑、B类建筑、C类建筑的数目,有利于后续的小区的建设等等,但是这个查询只能...

    php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)

    php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳) //其中 video 是表名; //createtime 是字段; // //数据库time字段为时间戳 // //查询当天: $start = date('Y-m-d 00:00:00'); $end = date('Y-m-...

    Microsoft SQL Server 2008技术内幕:T-SQL查询

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    VB编程源代码 71一次SQL查询中获得多个查询数值

    VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL...

    记录实现 使用 JSQLParser 构建高级 SQL 查询:解析 WITH AS 子句与动态 SQL 片段生成 (一)

    本文档记录了使用 JSQLParser 库来构建高级 SQL 查询的过程,重点关注如何解析 WITH AS 子句以及如何生成动态 SQL 片段。文档分为多个部分,本文为第一部分,主要讨论了基本的解析和构建技术。JSQLParser 提供了一...

    extjs 在线sql查询

    在“在线SQL查询”这个场景中,ExtJS 被用来构建一个用户界面,允许用户在浏览器中直接执行SQL查询,这对于数据库管理或数据分析来说非常方便。 `Ext.ux.window.VisualSQLQueryBuilder` 是ExtJS的一个扩展组件,...

    sql查询结果输出到文本

    如果想要把sql查询的结果输出到一个文本中显示,可以按照此文本中的方法来做。

    sql查询分离器,执行sql命令。服务器恢复

    SQL查询分离器是一种重要的数据库管理工具,主要用于解析、执行SQL命令。在数据库操作中,它扮演着关键角色,帮助开发者和管理员高效地处理复杂的查询,优化数据库性能,并进行数据恢复等任务。 首先,我们来详细...

    最全sql查询语句练习题汇总(面试必备)

    最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习...

Global site tag (gtag.js) - Google Analytics