一、统计语句

1、--统计当前【>当天00点以后的数据】

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

2、--统计本周

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

3、--统计本月

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

4、统计当前

SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate())=0
Select * From table with(nolock) Where Convert(varchar(10),[CreateTime],120) = Convert(varchar(10),getDate(),120)

二、时间函数

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),
select 当前时间=convert(varchar(8),getdate(),114),
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15'),
select 今天是周几=datename(weekday,'2004-10-15')

7、求相差天数

select   datediff(day,'2004-01-01',getdate()) 

8、一个月第一天的

SELECT   DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0) 

9、本周的星期一

SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),   0)
select dateadd(wk,datediff(wk,0,getdate()),6)

10、一年的第一天

SELECT   DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)

11、季度的第一天

SELECT   DATEADD(qq,   DATEDIFF(qq,0,getdate()),   0)

12、当天的半夜

SELECT   DATEADD(dd,   DATEDIFF(dd,0,getdate()),   0)

13、上个月的最后一天

SELECT   dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),   0))

14、去年的最后一天

SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)) 

15、本月的最后一天

SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(m,0,getdate())+1,   0))

16、本年的最后一天

SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate())+1,   0))

17、本月的第一个星期一

select   DATEADD(wk,  DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),   0)

18、查询本周注册人数

select   count(*)   from   [user]
where datediff(week,create_day-1,getdate())=0

19、上周注册人数

select   count(*)   from   [user]
where datediff(week,create_day-1,getdate())=1

20、本月注册人数

select   count(*)   from   [user]
where datediff(month,create_day,getdate())=0

21、上月注册人数

select   count(*)   from   [user]
where datediff(month,create_day,getdate())=1

如果要效率,用一下方式

22、查询本周注册人数

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

23、上周注册人数

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

24、本月注册人数

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

25、上月注册人数

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

26、本周

select   count(*)   from   User
where datediff(dd,create_day,getdate()) <= datepart(dw,getdate())

27、上周

select   count(*)   from   User
where datediff(dd,create_day,(getdate() - datepart(dw,getdate()))) <= 7

28、本月

select   count(*)   from   User
where datepart(mm,create_day) = datepart(mm,getdate())

29、上月

select   count(*)   from   User
where datepart(mm,create_day) = datepart(mm,getdate()) - 1

30、本周注册人数

select   count(*)   from   [User]
where datediff(dd,create_day,getdate()) <= datepart(dw,getdate())

31、上周注册人数

select   count(*)   from   [User]
where datediff(dd,create_day,(getdate() - datepart(dw,getdate()))) <= 7

32、本月注册人数

select   count(*)   from   [User]
where datepart(mm,create_day) = datepart(mm,getdate())

33、上月注册人数

select   count(*)   from   [User]
where datepart(mm,create_day) = datepart(mm,getdate()) - 1

34、查询今日所有

SELECT * from feedback WHERE (DATEDIFF(d,fedtime,GETDATE())=0) ORDER BY fedid DESC

month(create_day)=month(getdate())本月

month(create_day)=month(getdate())-1   上月

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0

昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1

7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7

30天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30

本月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0

本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0

系统函数:

系统函数
函数 参数/功能
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 取当天或当月的记录
表中的时间格式是这样的: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())

SQLServer 日期函数大全的更多相关文章

  1. sqlserver日期函数大全

    一,统计语句 1, - 统计当前[>当天00点以后的数据] SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT ...

  2. SQLServer 日期函数大全 SQLServer 时间函数大全

    原文地址:https://www.cnblogs.com/zhangpengnike/p/6122588.html 一.统计语句 1.--统计当前[>当天00点以后的数据] SELECT * F ...

  3. 使用sqlserver日期函数获取当前日期

    使用sqlserver日期函数中的getdate()可以获取当现的日期,下面就将为您介绍这种使用sqlserver日期函数获取当前日期的方法,供您参考,希望对您学习sqlserver日期函数有所启迪. ...

  4. SQLserver日期函数

      ------------------日期转化成年月日时分秒毫秒--------------- select 'R'+CONVERT(varchar(100), GETDATE(), 112)+ri ...

  5. mysql 日期函数大全

    对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型. 这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: my ...

  6. POSTGRESQL日期函数大全

    一:各个数据中的连接符 SqlServer的连接符:+(加号) Sqlite的连接符:.(点) PostgreSQL的连接符:||(或) 二: 今天在PostgreSQL计算日期的时候,翻了一些资料, ...

  7. SQLServer日期函数用法

    --1.显示本月第一天 ,) ),)) --2.显示本月最后一天 ,),,))) ,,,)) --3.上个月的最后一天 ,,)) --4.本月的第一个星期一 , ) --5.本年的第一天 ,) --6 ...

  8. sqlserver日期函数 dateadd,datediff ,datepart ,datename,convert

    reference:http://www.cnblogs.com/coconut_zhang/archive/2009/02/02/1382598.html http://blog.itpub.net ...

  9. Sqlserver日期函数应用

    1.获取当前时间 SELECT  GETDATE() AS '当前日期' ,         DATENAME(year, GETDATE()) AS '年' ,         DATENAME(m ...

随机推荐

  1. Cesium原理篇:4Web Workers剖析

    JavaScript是单线程的,又是异步的,而最新的HTML5中,通过Web Workers可以在JS中支持多线程开发.这是几个意思?异步还是单线程,这怎么理解?Web Workers又是什么原理?实 ...

  2. kafka配置参数

    Kafka为broker,producer和consumer提供了很多的配置参数. 了解并理解这些配置参数对于我们使用kafka是非常重要的.本文列出了一些重要的配置参数. 官方的文档 Configu ...

  3. struct 大小计算

    结构体是一种复合数据类型,通常编译器会自动的进行其成员变量的对齐,已提高数据存取的效率.在默认情况下,编译器为结构体的成员按照自然对齐(natural alignment)条方式分配存储空间,各个成员 ...

  4. js晋级篇——前端内存泄漏探讨

    1.IE7/8 DOM对象或者ActiveX对象循环引用导致内存泄漏 循环引用分为两种: 第一种:多个对象循环引用 var a=new Object; var b=new Object; a.r=b; ...

  5. 20个非常棒的jQuery倒计时脚本

    使用jQuery倒计时插件可能是最简单最好的方式添加动态和交互式倒数计时器到您的网站上.我相信你已经注意到了,例如倒计时功能运行网站,显示倒计时,直到一个大事件.当网站正在维护,告诉用户什么时候回来, ...

  6. CSS魔法堂:重拾Border之——更广阔的遐想

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  7. Windows下80端口被pid为4的System进程占用解决方法

    前言 之前是Windows 7系统,前段时间装了Windows 10,php环境还没来得及搭建.今天折腾了一下,是用nginx+php,端口是80(已经停止了iis服务),nginx就是起不来,十之八 ...

  8. PetaPoco利用ODP.NET Managed Driver连接Oracle

    大概几年之前用PetaPoco做过一个Oracle的项目,开发的时候还需要安装oracle的client,非常麻烦.调试好环境后,一直到项目结束都不敢重装系统.最近又有一个需求需要读取oracle,可 ...

  9. Java逐行读写TXT文件

    package help; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; imp ...

  10. HibernateUtil工具类

    import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.slf4j.Logger; ...