sql 查询本年、本月、本日记录的语句,附SQL日期函数

 更新时间:2011年07月01日 13:46:21   作者:  
sql 查询本年、本月、本日记录的语句,附SQL日期函数,学习sql的朋友可以参考下。

查询本日记录

SELECT * FROM messages WHERE CONVERT(Nvarchar, CreateDate, 111) = CONVERT(Nvarchar, GETDATE(), 111)   ORDER BY CreateDate DESC

SELECT * FROM WHERE datediff(day,列名,getdate())=0

 

查询本年

SELECT count(*) FROM messages WHERE datediff(year,CreateDate,getdate())=0

查询本月

SELECT count(*) FROM messages WHERE datediff(month,CreateDate,getdate())=0

本周记录

SELECT * FROM 表名 WHERE datediff(week,列名,getdate())=0

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

函数 参数/功能
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年

相关文章

  • 使用row_number()实现分页实例

    使用row_number()实现分页实例

    或许大家不知道,其实使用row_number()是可以实现分页的,下面有个不错的示例,大家可以尝试操作下
    2013-11-11
  • 执行一条sql语句update多条记录实现思路

    执行一条sql语句update多条记录实现思路

    如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?本文以一个示例向大家讲解下如何实现如标题所示的情况,有此需求的朋友可以了解下
    2013-08-08
  • SQL文本提取/截取的四种方式

    SQL文本提取/截取的四种方式

    本文主要介绍了SQL文本提取/截取的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 详解SQL游标的用法

    详解SQL游标的用法

    这篇文章主要介绍了SQL游标的用法,文中讲解非常详细,配合代码帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2020-06-06
  • 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法

    当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法

    这篇文章主要介绍了当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法,需要的朋友可以参考下
    2016-10-10
  • SQL Server 2019自定义安装教程

    SQL Server 2019自定义安装教程

    这篇文章介绍了SQL Server 2019的安装教程,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • sql server 2000中禁止创建表(权限设置方法)

    sql server 2000中禁止创建表(权限设置方法)

    最近发现数据库中发现了三个临时表,为了安全这里为大家分享下sql server 2000中禁止创建表的方法,网上都么有的,脚本之家小编原创
    2015-07-07
  • 清除SQL SERVER错误日志出现操作系统错误的解决方法

    清除SQL SERVER错误日志出现操作系统错误的解决方法

    SQL Server 外部的进程可能会阻止 SQL Server 读取这些文件。因此,错误日志条目可能已丢失,并且或许不可能查看某些 SQL Server 错误日志。请确保任何其他进程都未将该文件锁定为只写访问
    2013-08-08
  • SQL server 三种常用的触发器

    SQL server 三种常用的触发器

    文章介绍了SQL Server中三种常用的触发器:插入触发器、删除触发器和更新触发器,每种触发器在特定操作(插入、删除、更新)发生时触发,触发器可以访问两个虚拟表:Inserted(新数据)和Deleted(旧数据),用于获取和操作数据,感兴趣的朋友一起看看吧
    2025-03-03
  • Sql Server查询卡顿的排查方法

    Sql Server查询卡顿的排查方法

    这篇文章主要介绍了Sql Server查询卡顿的排查方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-07-07

最新评论