sqlserver之datepart和datediff应用查找当天上午和下午的数据

DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

DATEDIFF() 函数返回两个日期之间的时间差。

--查找当天上午的数据
 select * from R_Attendance where (datepart(hour,RDatetime)>=0 and datepart(hour,RDatetime)<12) and datediff(d,RDatetime,GetDate())=0 

--查找当天下午的数据
 select * from R_Attendance where (datepart(hour,RDatetime)>12 and datepart(hour,RDatetime)<=23) and datediff(d,RDatetime,GetDate())=0 

计算两个时间差

相差年数:SELECT DATEDIFF(YEAR,'2017-07-01 11:25:52','2018-07-02 12:25:52'); 结果:1

相差天数:SELECT DATEDIFF(DAY,'2018-07-01 11:25:52','2018-07-02 12:25:52'); 结果:1

相差小时:SELECT DATEDIFF(HOUR,'2018-07-01 11:00:00','2018-07-01 16:00:00');  结果:5

相差分数:MINUTE,相差秒数:SECOND,相差月数:MONTH

获取当日、月、年的数据:

根据以上计算时间差,我们可以得出结果,如下:

当日:SELECT * FROM UserTable WHERE DATEDIFF(DAY, StartTime, GETDATE())=0

当月:SELECT * FROM UserTable WHERE DATEDIFF(MONTH, StartTime, GETDATE())=0

当年:SELECT * FROM UserTable WHERE DATEDIFF(YEAR, StartTime, GETDATE())=0

如果想要获取前一天、月或年等,函数只需等于1即可,依次类推即可,反之获取后一个月、年等。函数等于-1,在此就不一一列出了。

总结

以上所述是小编给大家介绍的sqlserver之datepart和datediff应用查找当天上午和下午的数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • 模拟SQLSERVER的两个函数:dateadd(),datediff()

    <?php//文件名:date.inc.php3//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型.//如://$today=mktime(0,0,0,date("m"),date("d"),date("Y")); /****模拟sqlserver中的dateadd函数*******$part 类型:string取值范围:year,month,day,hour,min,sec表示:要增加的日期的哪个部分$n 类型:数值

  • sqlserver之datepart和datediff应用查找当天上午和下午的数据

    DATEPART() 函数用于返回日期/时间的单独部分,比如年.月.日.小时.分钟等等. DATEDIFF() 函数返回两个日期之间的时间差. --查找当天上午的数据 select * from R_Attendance where (datepart(hour,RDatetime)>=0 and datepart(hour,RDatetime)<12) and datediff(d,RDatetime,GetDate())=0 --查找当天下午的数据 select * from R_Atte

  • list转tree和list中查找某节点下的所有数据操作

    类的实例化顺序 父类静态变量. 父类静态代码块. 子类静态变量. 子类静态代码块. 父类非静态变量(父类实例成员变量). 父类构造函数. 子类非静态变量(子类实例成员变量). 子类构造函数. 已知组织类Org{String id,String name,String parentId},现在一List<Org>中存放无序的Org数据,求一个组织id下的所有组织. public static List<Org> childList=new ArrayList<>(); p

  • 查找行中的第一个数据串

    复制代码 代码如下: @echo off :: 查找形如 <input name=id value=1842 type=hidden> 的记录中 :: 的第一个数字串 :: 通过探测每一个字符的类型来获取,但是效率十分低下 :: code by jm 2006-10-16 CMD@XP set num=0 setlocal enabledelayedexpansion for /f "delims=" %%i in (input.txt) do call :intercep

  • 在MySQL中同时查找两张表中的数据的示例

    这个例子里面我们从两个表中取出头两行,然后合并到一个表中. 在现实中我们常常会遇到这样的情况,在一个数据库中存在两个表,假设表1储存着公司个产品本季度销售信息,表2储存着公司本季度欠款金额情况.在一个页面中我们想把这两个信息显示出来.通常的做法是在程序中进行两次SQL查询,返回两个结果集,在分别显示出来,非常麻烦. 下面是实现这个功能的代码: CREATE PROCEDURE test AS SET NOCOUNT ON --指示存储过程不返回查询影响的行数 DECLARE @col1c var

  • SQLServer 日期函数大全(小结)

    一.统计语句 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 da

  • SqlServer中的日期与时间函数

    一.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')

  • 使用Sqlserver事务发布实现数据同步(sql2008)

    事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进的.这里以sqlserver2008的事务发布功能为例,对发布订阅的方式简要介绍一下操作流程,一方面做个总结备份,一方面与大家进行一下分享和交流.费话就不多说了,进入一下今天的正题:) 这里要说明一下环境:首先我在本地局域网内有两台安装有sqlserver2008的机器(注意:已发布的快照版本无法向老版本数据库兼容,意味着2008下创建的事务或快照发布,无法被

  • android中sqlite的按条件查找的小例子

    name      hobby Tom        football Peter       basketball 我们如果要查找爱好是football的一行数据怎么办呢?在网上找了很多方法,感觉都说不到点子上,所以浪费了很多时间,好在终于解决了,解决方法如下 [java] 复制代码 代码如下: Cursor mcursor=mSQLiteDatabase.query(tableName, new String[]{"id as _id","name","

  • 在MySQL中实现二分查找的详细教程

    给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7,7].问题:给定任意自然数,对数组进行二分查找,返回数组正确的位置,给出函数实现.注:连续相同的数字,返回第一个匹配位置还是最后一个匹配位置,由函数传入参数决定. 我为什么会出这道题目? 二分查找在数据库内核实现中非常重要 在数据库的内核实现中,二分查找是一个非常重要的逻辑,几乎99%以上的SQL语句(所有索引上的范围扫描/等值查询/Unique查询等),都会使用到二分查找进行数据的定位. 考虑一个

  • SQLServer 2000 数据库同步详细步骤[两台服务器]

    为什么要同步SQL Server 2000 数据库,它都用在什么场合 SQL Server 2000 数据库同步配置的原理 从0开始一步一步配置SQL Server 2000 数据库同步,非常细 已经非常熟练,可以看精品版SQL Server 2000 数据库同步配置 配置SQL Server 2000 数据库同步时的 常见问题 为什么要同步SQL Server 2000 数据库,它都用在什么场合 数据实时备份同步,数据库服务器出问题时我们也有其正常工作时的备份 数据实时备份同步,一台服务器负载

随机推荐