zoukankan      html  css  js  c++  java
  • Sqlserver时间函数用法(二)

    --1. 当前系统日期、时间
    select getdate() --2015-01-06 09:27:27.277

    --2.时间操作 dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
    dateadd(datepart,number,date)
    注:
    datepart : year(yy, yyyy) | quarter(qq,q) | month(mm,m) | week(ww,wk) | day(dd,dy) | hour(h) | minute(mi,n) |
    second (ss,s)| millisecond(ms)
    date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
    例:
    select getdate()
    select dateadd(year,1,getdate()) --2016-01-06 09:27:27.277
    select dateadd(month,1,getdate()) --2017-02-06 09:27:27.277
    select dateadd(day,1,getdate()) --2015-01-07 09:27:27.277
    select dateadd(week,1,getdate()) --2015-01-13 09:27:27.277
    select dateadd(weekday,1,getdate()) --2015-01-07 09:27:27.277
    select dateadd(hour,1,getdate()) --2015-01-06 10:27:27.277
    select dateadd(Minute,1,getdate()) --2015-01-06 09:28:27.277
    select dateadd(Second,1,getdate()) --2015-01-06 09:28:28.277

    --3. datediff 返回跨两个指定日期的日期和时间边界数。
    datediff( date-part, startdate, enddate )
    注:
    datepart : year(yy, yyyy) | quarter(qq,q) | month(mm,m) | week(ww,wk) | day(dd,dy) | hour(h) | minute(mi,n) |
    second (ss,s)| millisecond(ms)
    startdate 和 enddate 参数是合法的日期表达式。
    返回值:(enddate)-(startdate)
    例:
    select datediff(year,getdate(),dateadd(year,2,getdate())) --返回:2
    SELECT * FROM crm_contract where datediff(month,Subtime,getdate())=0 --查看crm_contract申请时间subtime是本月的数据

    --4. datepart 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
    --如果需要得到自己需要的日期,则需要讲日期时间格式化
    SELECT DATEPART(year, getdate()) as '年份'
    SELECT DATEPART(month, getdate()) as '月份'
    SELECT DATEPART(day, getdate()) as '日期'
    SELECT DATEPART(week, getdate()) as '本年第几周数'
    SELECT (DATEPART(weekday, getdate())-1) as '今天是周几?'
    SELECT DATEPART(hour, getdate()) as '小时'
    SELECT DATEPART(Minute, getdate()) as '分钟'
    SELECT DATEPART(Second, getdate()) as '秒时'

    --5. datename 返回代表指定日期的指定日期部分的字符串
    SELECT datename(weekday, getdate()) as '今天是星期几?'
    SELECT datename(month,convert(varchar(10), getdate(),126)) as '今天是几月份?'
    SELECT datename(day,convert(varchar(10), getdate(),126)) as '今天是几号?'
    SELECT datename(year,convert(varchar(10), getdate(),126)) as '今年是哪年?'

    --上周周一
    SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()),-7)
    --上周周天
    SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()),-1)
    --.本周周一
    SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()),0)
    --.本周周天
    select dateadd(wk,datediff(wk,0,getdate()),6)
    --下周周一
    select dateadd(wk,datediff(wk,0,getdate()),7)
    --下周周天
    select dateadd(wk,datediff(wk,0,getdate()),13)
    --1.本月第一天
    SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

    --.本月最后一天
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    --.本周星期一
    SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

    --.本周星期天
    select dateadd(wk,datediff(wk,0,getdate()),6)

    --.本年第一天
    SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

    --.本年最后一天
    SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
    --.本季度第一天
    SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

    --.当天的半夜
    SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

    --.上个月的最后一天
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

    --.去年的最后一天
    SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))


    --.本月的第一个星期一
    select DATEADD(wk,
    DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

  • 相关阅读:
    python json 和 pickle的补充 hashlib configparser logging
    go 流程语句 if goto for swich
    go array slice map make new操作
    go 基础
    块级元素 行内元素 空元素
    咽炎就医用药(慢性肥厚性咽炎)
    春季感冒是风寒还是风热(转的文章)
    秋季感冒 咳嗽 怎么选药
    解决IE浏览器“无法显示此网页”的问题
    常用的 css 样式 记录
  • 原文地址:https://www.cnblogs.com/l1pe1/p/7380520.html
Copyright © 2011-2022 走看看