当前位置: 首页 > news >正文

Sql: 請假跨月份問題,或跨年份問題 日期部分边界

 1 ---請假跨月份問題,或跨年份問題 日期部分边界
 2 declare @sart datetime,@end datetime,@d int,@s1 datetime,@e1 datetime,@s2 datetime,@e2 datetime,@t varchar(50),@t2 varchar(50),@I int
 3 set @sart='2012-11-18 14:56:12'
 4 set @end='2012-12-08 14:56:12'
 5 --set @I=DATEDIFF(ms,@sart,@end)
 6 set @I=DATEDIFF(ss,@sart,@end)
 7 if(year(@sart)=year(@end) and month(@sart)=month(@end))
 8 begin
 9     set @d=day(@end)-day(@sart)+1
10     --select @d=datediff(day,@sart,@end) 
11         --set @d=@d*8 AS '小時'
12        --select @d=datediff(hour,@sart,@end) AS '小時'
13       --select @d=@I/86400000
14     select @d=@I/86400    
15 end
16 else
17 begin
18 if(year(@sart)=year(@end) and month(@end)>month(@sart))
19     set @t=cast(year(@sart) as varchar)+'-'+cast(month(@sart) as varchar)+'-'+cast(day(@sart) as varchar)+' '+cast(DATEPART(hour,@sart) as varchar)+':'+cast(DATEPART(minute,@sart) as varchar)+':'+cast(DATEPART(second,@sart) as varchar)
20     select @s1=cast( @t as datetime)
21 --月末
22     select @e1=DATEADD(day,  -1, DATEADD(month, 1,DATEADD(day,-DATEPART(day, @sart)+1,@sart )))
23 set @t2=cast(year(@end) as varchar)+'-'+cast(month(@end) as varchar)+'-'+cast(day(@end) as varchar)+' '+cast(DATEPART(hour,@end) as varchar)+':'+cast(DATEPART(minute,@end) as varchar)+':'+cast(DATEPART(second,@end) as varchar)
24 select @e2=cast( @t2 as datetime)
25 --月初
26 select @s2=DATEADD(month, 0,DATEADD(day,-DATEPART(day, @end)+1,@end))
27 --select @d=@I/86400000
28 select @d=@I/86400
29 end
30 select @I,@d,@s1,@e1,@s2,@e2
31 
32 
33 
34 
35 
36 ---
37 DECLARE @I INT
38 SET @I = DATEDIFF(ms,GETDATE()-RAND()*24,GETDATE())
39 
40 SELECT
41 convert(varchar(10), (@I/86400000)) + ' Days  ' + 
42 convert(varchar(10), ((@I%86400000)/3600000)) + ' Hours  '+
43 convert(varchar(10), (((@I%86400000)%3600000)/60000)) + ' Mins  '+
44 convert(varchar(10), ((((@I%86400000)%3600000)%60000)/1000)) + ' sec ' +
45 convert(varchar(10), (((@I%86400000)%3600000)%1000)) + ' ms  ' AS [DD:HH:MM:SS:MS]
46 --
47 select
48         *,
49         Days          = datediff(dd,0,DateDif),
50         Hours         = datepart(hour,DateDif),
51         Minutes       = datepart(minute,DateDif),
52         Seconds       = datepart(second,DateDif),
53         MS            = datepart(ms,DateDif)
54 from
55         (
56         select
57                 DateDif = EndDate-StartDate,
58                 aa.*
59         from
60                 (  -- Test Data
61                 Select
62                         StartDate = convert(datetime,'20090213 02:44:37.923'),
63                         EndDate   = convert(datetime,'20090715 13:24:45.837')
64                 ) aa
65         ) a

 

转载于:https://www.cnblogs.com/geovindu/archive/2013/04/11/3014042.html

相关文章:

  • OpenFlow通信流程解读
  • React 入门与实战-课时7 虚拟DOM的本质和目的
  • sort函数和next_permutation()函数的用法。
  • 舵机控制原理
  • BZOJ1123 BLO
  • Mac下的PHP的配置与运行
  • 数据映射工具 AssionMapper
  • Navicat 连接MySQL 8.0.11 出现2059错误
  • 牛客练习赛33 C tokitsukaze and Number Game (结论+字符串处理)
  • 【知识库】-数据库_数据库事务与隔离级别
  • cpan 配置
  • 2-SAT(随意写点)
  • [SCOI2005]繁忙的都市
  • 【0712作业】重写equals
  • 人脸识别(21)
  • 【刷算法】求1+2+3+...+n
  • Angular 响应式表单之下拉框
  • CSS实用技巧
  • es6(二):字符串的扩展
  • java8 Stream Pipelines 浅析
  • Linux下的乱码问题
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • php ci框架整合银盛支付
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PHP的类修饰符与访问修饰符
  • React组件设计模式(一)
  • spring security oauth2 password授权模式
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 技术发展面试
  • 将回调地狱按在地上摩擦的Promise
  • 力扣(LeetCode)21
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 智能网联汽车信息安全
  • ​批处理文件中的errorlevel用法
  • #QT(TCP网络编程-服务端)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C)一些题4
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (三)uboot源码分析
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)Oracle存储过程编写经验和优化措施
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET 回调、接口回调、 委托
  • .NET开发人员必知的八个网站
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • @Pointcut 使用
  • @RequestBody与@ResponseBody的使用
  • @selector(..)警告提示