zoukankan      html  css  js  c++  java
  • SQL时间相关

    SQL 
    --本周第一天 
    SELECT DATEADD(Day,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate()) 
    --or 
    select dateadd(wk, datediff(wk,0,getdate()), 0) 
    --本周第一天 
    select dateadd(wk, datediff(wk,0,getdate()), 6) 
     
    --上月第一天 
    SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) 
    --上月最后一天 
    SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59' 
    --本月第一天 
    select dateadd(dd,-datepart(dd,getdate())+1,getdate()) 
    --本月最后一天 
    select dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate())) 
    --本月天数 
    select datediff(dd,dateadd(dd,-datepart(dd,getdate())+1,getdate()), dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate()))) 
    --or 
    select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime)))) 
     
    --下月第一天 
    select dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate())) 
    --下月最后一天 
    SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+2,0)),111)+' 23:59:59' 
    --季度第一天 
    SELECT   DATEADD(qq,   DATEDIFF(qq,0,getdate()),   0)  
    --季度最后一天(直接推算法) 
    SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,getdate())*3-Month(getdate()),getdate()),120)+'1') 
    --季度的最后一天(CASE判断法) 
    select DATEADD(Month,DATEPART(Quarter,getdate())*3-Month(getdate()),getdate()) 
     
    --本月第一个星期一 
    SELECT DATEADD(wk, DATEDIFF(wk, '', DATEADD(dd, 6 - DAY(getdate()), getdate())), '')  
    --去年最后一天 
    SELECT   dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))  
    --今年第一天 
    SELECT   DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)  
    --今年最后一天 
    SELECT  dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1,0)) 
     
    --指定日期所在周的任意一天 
    SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)--5.指定日期所在周的任意星期几 
    --A.  星期天做为一周的第1天 
    SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt) 
    --B.  星期一做为一周的第1天 
    SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt) 
    ---周内的第几日 
    select datepart(weekday,getdate()) as 周内的第几日 
    --年内的第几周 
    select datepart(week,getdate()) as 年内的第几周 
    --年内的第几季 
    select datepart(quarter,getdate()) as 年内的第几季 
     
     
    --判断某天是当月的第几周的sql函数  
    CREATE   FUNCTION   WeekOfMonth(@day datetime)    
    RETURNS int 
    AS  
    begin 
     
    ----declare @day datetime 
    declare @num int 
    declare @Start datetime 
    declare @dd int 
    declare @dayofweek char(8) 
    declare @dayofweek_num char(8) 
    declare @startWeekDays int 
    ---set @day='2009-07-05' 
    if datepart(dd,@day)=1 
    return 1 
    else 
    set @Start= (SELECT   DATEADD(mm,   DATEDIFF(mm,0,@day),   0)) --一个月第一天的 
    set @dayofweek= (datename(weekday,@Start)) ---得到本月第一天是周几 
    set @dayofweek_num=(select (case @dayofweek when '星期一' then 2 
    when '星期二' then 3 
    when '星期三' then 4 
    when '星期四' then 5 
    when '星期五' then 6 
    when '星期六' then 7 
    when '星期日' then 1 
    end)) 
    set @dayofweek_num= 7-@dayofweek_num+1 ---得到本月的第一周一共有几天 
    ---print @dayofweek_num 
       set @dd=datepart(dd,@day) ----得到今天是这个月的第几天 
    --print @dd 
    if @dd<=@dayofweek_num --小于前一周的天数 
    return 1 
    else  
    set @dd=@dd-@dayofweek_num 
    if @dd % 7=0 
         begin 
           set @num=@dd / 7 
            return @num+1 
            
         end 
       else --if @dd % 7<>0 
        
         set @num=@dd / 7 
    set @num=@num+1+1 
           return @num 
    end 
  • 相关阅读:
    oppo R9sk 完美root 线刷包+救砖(替换成永久链接)
    android app通知栏权限状态判断及跳转状态栏设置页面
    手把手教你查看android系统源码
    android开发之app在线时长统计sdk开发
    android网络优化之添加缓存给服务器减负
    android——使用Interceptor设置缓存来给服务器减负
    java反射基础应用备注
    android——Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER 解决方案
    android——No matching client found for package错误处理
    go 指针类型
  • 原文地址:https://www.cnblogs.com/toloe/p/6178030.html
Copyright © 2011-2022 走看看