1. SQL
  2. --本周第一天
  3. SELECT DATEADD(Day,-(DATEPART(Weekday,getdate())+@@DATEFIRST-)%,getdate())
  4. --or
  5. select dateadd(wk, datediff(wk,,getdate()), )
  6. --本周第一天
  7. select dateadd(wk, datediff(wk,,getdate()), )
  8.  
  9. --上月第一天
  10. SELECT CONVERT(CHAR(),DATEADD(month,-,DATEADD(dd,-DAY(GETDATE())+,GETDATE())),)
  11. --上月最后一天
  12. SELECT CONVERT(CHAR(),DATEADD(ms,-,DATEADD(mm, DATEDIFF(mm,,getdate()),)),)+' 23:59:59'
  13. --本月第一天
  14. select dateadd(dd,-datepart(dd,getdate())+,getdate())
  15. --本月最后一天
  16. select dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,,getdate()))
  17. --本月天数
  18. select datediff(dd,dateadd(dd,-datepart(dd,getdate())+,getdate()), dateadd(dd,-datepart(dd,getdate())+,dateadd(mm,,getdate())))
  19. --or
  20. select datepart(dd,dateadd(dd,-,dateadd(mm,,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))
  21.  
  22. --下月第一天
  23. select dateadd(dd,-datepart(dd,getdate())+,dateadd(mm,,getdate()))
  24. --下月最后一天
  25. SELECT CONVERT(CHAR(),DATEADD(ms,-,DATEADD(mm,DATEDIFF(m,,getdate())+,)),)+' 23:59:59'
  26. --季度第一天
  27. SELECT DATEADD(qq, DATEDIFF(qq,,getdate()), )
  28. --季度最后一天(直接推算法)
  29. SELECT DATEADD(Day,-,CONVERT(char(),DATEADD(Month,+DATEPART(Quarter,getdate())*-Month(getdate()),getdate()),)+'')
  30. --季度的最后一天(CASE判断法)
  31. select DATEADD(Month,DATEPART(Quarter,getdate())*-Month(getdate()),getdate())
  32.  
  33. --本月第一个星期一
  34. SELECT DATEADD(wk, DATEDIFF(wk, '', DATEADD(dd, - DAY(getdate()), getdate())), '')
  35. --去年最后一天
  36. SELECT dateadd(ms,-,DATEADD(yy, DATEDIFF(yy,,getdate()), ))
  37. --今年第一天
  38. SELECT DATEADD(yy, DATEDIFF(yy,,getdate()), )
  39. --今年最后一天
  40. SELECT dateadd(ms,-,DATEADD(yy, DATEDIFF(yy,,getdate())+,))
  41.  
  42. --指定日期所在周的任意一天
  43. SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)--.指定日期所在周的任意星期几
  44. --A. 星期天做为一周的第1
  45. SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-)%,@dt)
  46. --B. 星期一做为一周的第1
  47. SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-)%-,@dt)
  48. ---周内的第几日
  49. select datepart(weekday,getdate()) as 周内的第几日
  50. --年内的第几周
  51. select datepart(week,getdate()) as 年内的第几周
  52. --年内的第几季
  53. select datepart(quarter,getdate()) as 年内的第几季
  54.  
  55. --判断某天是当月的第几周的sql函数
  56. CREATE FUNCTION WeekOfMonth(@day datetime)
  57. RETURNS int
  58. AS
  59. begin
  60.  
  61. ----declare @day datetime
  62. declare @num int
  63. declare @Start datetime
  64. declare @dd int
  65. declare @dayofweek char()
  66. declare @dayofweek_num char()
  67. declare @startWeekDays int
  68. ---set @day='2009-07-05'
  69. if datepart(dd,@day)=
  70. return
  71. else
  72. set @Start= (SELECT DATEADD(mm, DATEDIFF(mm,,@day), )) --一个月第一天的
  73. set @dayofweek= (datename(weekday,@Start)) ---得到本月第一天是周几
  74. set @dayofweek_num=(select (case @dayofweek when '星期一' then
  75. when '星期二' then
  76. when '星期三' then
  77. when '星期四' then
  78. when '星期五' then
  79. when '星期六' then
  80. when '星期日' then
  81. end))
  82. set @dayofweek_num= -@dayofweek_num+ ---得到本月的第一周一共有几天
  83. ---print @dayofweek_num
  84. set @dd=datepart(dd,@day) ----得到今天是这个月的第几天
  85. --print @dd
  86. if @dd<=@dayofweek_num --小于前一周的天数
  87. return
  88. else
  89. set @dd=@dd-@dayofweek_num
  90. if @dd % =
  91. begin
  92. set @num=@dd /
  93. return @num+
  94.  
  95. end
  96. else --if @dd % <>
  97.  
  98. set @num=@dd /
  99. set @num=@num++
  100. return @num
  101. end

SQL时间相关的更多相关文章

  1. SQL时间相关 - SQL日期,时间比较

    SQL Server 中时间比较 例子: select count(*) from table where DATEDIFF ([second], '2004-09-18 00:00:18', '20 ...

  2. sql 时间相关

    1.常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233') (1)DATENAME ( datepart ,date ) 返回表示指定日期的指定日期部分的字符 ...

  3. PL/SQL学习笔记之日期时间

    一:PL/SQL时间相关类型 PL/SQL提供两个和日期时间相关的数据类型: 日期时间(Datetime)数据类型 时间间隔类型 二:日期时间类型 datetime数据类型有: DATE TIMEST ...

  4. SQL SERVER 时间相关操作笔记

    1.DATEADD函数: A.  MSDN上的示例:http://msdn.microsoft.com/zh-cn/library/ms186819%28v=sql.90%29.aspx

  5. mysql 时间相关sql , 按天、月、季度、年等条件进行查询

    #今天 select * from or_order_task where to_days(created_date)=to_days(now()); #近七天 select * day )<= ...

  6. java获取获得Timestamp类型的当前系统时间。以及java.util.date 、java.sql.Date之间的转换

    java获取取得Timestamp类型的当前系统时间java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new T ...

  7. sql经典语句大全

    SQL Server提供了大量的函数, 但是在一些常见的如, 字符串拆分, 字符提取,过滤等没有对应的处理, 本帖主要收集一些常见的函数, 整理如下: ------------------------ ...

  8. jdbc 日期时间相关的类型

    jdbc 日期时间相关的类型 1.sql.Date sql包中的日期类Date是util包中Date类的子类,实际上也是util.Date类的子集.它只处理年月日,而忽略小时和分秒,用以代表SQL的D ...

  9. sql 取时间 问题集

    一. AND B.TRAFFICE_DATE>dateadd(day,5,(select getdate())) dateadd(day,5,(select getdate())):为当前时间+ ...

随机推荐

  1. Android手机刷机失败的自救方法

    刷机对于一些android手机的高级用户来说已经是家常便饭了,很多新手也都跟着教程轻松了学会刷机.升级系统,也都开始经常在网上搜罗一些自制的系统进行刷机,体验新系统带来的新感觉.但是有句古话叫常在河边 ...

  2. 《深入浅出Node.js》第5章 内存控制(未完)

    @by Ruth92(转载请注明出处) 第5章 内存控制 基于无阻塞.事件驱动建立的 Node 服务,具有内存消耗低的优点,非常适合处理海量的网络请求. 内存控制正是在海量请求和长时间运行的前提下进行 ...

  3. [翻译] LTE/LTE-Advanced for Mobile Broadband-10.4

    10.4 下行L1/L2控制信令 上下行信道的数据传输,需要特定的“下行控制信令”提供支持.下行控制信令通常被称为“下行L1/L2控制信令”,这表示该控制信令部分来自物理层(L1),部分来自MAC层( ...

  4. 1-Spark高级数据分析-第一章 大数据分析

    1.1 数据科学面临的挑战 第一,成功的分析中绝大部分工作是数据预处理. 第二,迭代与数据科学紧密相关.建模和分析经常需要对一个数据集进行多次遍历.这其中一方面是由机器学习算法和统计过程本身造成的. ...

  5. 修改PHP上传文件大小限制的方法

    感谢分享,原文地址:http://www.cnblogs.com/newsouls/archive/2012/12/27/2835628.html 修改PHP上传文件大小限制的方法1. 一般的文件上传 ...

  6. SVN 错误

    SVN 的基础安装 网上查 用户账号简单的配置 1.进入  ./conf/passwd       账号创建 [users] Colin =  rw Colin1 = r 2.进入  ./conf/a ...

  7. css兼容问题

    Opacity的兼容处理          filter:alpha(opacity=100); /* IE */        opacity: 0.5; /* 支持opacity的浏览器*/

  8. jquery/js实现一个网页同时调用多个倒计时(最新的)

    <div class="time countdown_1" data-time="1449429731"> <span class=" ...

  9. epoll 反应堆

    epoll反应堆模型 ================================ 下面代码实现的思想:epoll反应堆模型:( libevent 网络编程开源库 核心思想) . 普通多路IO转接 ...

  10. JSPatch – 动态更新iOS APP

    原文:http://blog.cnbang.net/works/2767/ JSPatch是最近业余做的项目,只需在项目中引入极小的引擎,就可以使用JavaScript调用任何Objective-C的 ...