美文网首页
date函数

date函数

作者: haidaozheng | 来源:发表于2019-04-28 16:30 被阅读0次

    GETDATE()

    从 SQL Server 返回当前的时间和日期。

    GETDATE()

    Datepart()

    返回 指定日期指定日期部分 的整数

    Datepart(datepart,date) 返回类型:int

    DateName()

    返回 指定日期指定日期部分 的字符串

    DateName(datepart,date) 返回类型:nvarchar

    DATEADD()

    在日期中添加或减去指定的时间间隔。

    DATEADD(datepart,number,date)

    DATEDIFF()

    返回两个日期之间的时间。

    DATEDIFF(datepart,startdate,enddate)

    YEAR(), MONTH(), DAY()

    返回表示指定日期的年份、月份、日的整数

    SELECT YEAR(0), MONTH(0), DAY(0)

    CONVERT()

    把日期转换为新数据类型的通用函数,可以用不同的格式显示日期/时间数据。

    CONVERT (data_type[(length)],expression[,style])

    datepart 参数可以是下列的值:

    日期部分 缩写 备注
    year yy, yyyy
    quarter qq, q 季度
    month mm, m
    dayofyear dy, y 一年中的第几天
    day dd, d
    week wk, ww 一年中的第几周
    weekday dw 日期部分返回对应于星期中的某天的数,例如:Sunday =1 星期几
    Hour hh 小时
    minute mi, n 分钟
    second ss, s
    millisecond ms 毫秒

    可以使用的 style 值:

    不带世纪数位 (yy) 带世纪数位 (yyyy) 标准 输入/输出**
    - 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
    1 101 美国 mm/dd/yyyy
    2 102 ANSI yy.mm.dd
    3 103 英国/法国 dd/mm/yy
    4 104 德国 dd.mm.yy
    5 105 意大利 dd-mm-yy
    6 106 - dd mon yy
    7 107 - mon dd, yy
    8 108 - hh:mm:ss
    - 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
    10 110 美国 mm-dd-yy
    11 111 日本 yy/mm/dd
    12 112 ISO yymmdd
    - 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
    14 114 - hh:mi:ss:mmm(24h)
    - 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
    - 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
    - 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
    - 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
    - 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM
    select GETDATE() as '当前日期时间',
    DateName(year,GetDate())+'-'+DateName(month,GetDate())+'-'+DateName(day,GetDate()) as '当前日期', 
    DateName(quarter,GetDate()) as '第几季度',
    DateName(week,GetDate()) as '一年中的第几周',
    DateName(DAYOFYEAR,GetDate()) as '一年中的第几天',
    DateName(year,GetDate()) as '年',
    DateName(month,GetDate()) as '月',
    DateName(day,GetDate()) as '日',
    DateName(hour,GetDate()) as '时',
    DateName(minute,GetDate()) as '分',
    DateName(second,GetDate()) as '秒',
    DateName(MILLISECOND,GetDate()) as '豪秒',
    DateName(WEEKDAY,GetDate()) as '星期几'
    
    select GETDATE() as '当前日期时间',
    convert(varchar,DatePart(year,GetDate()))+'-'+convert(varchar,DatePart(month,GetDate()))+'-'+convert(varchar,DatePart(day,GetDate())) as '当前日期', 
    DatePart(quarter,GetDate()) as '第几季度',
    DatePart(week,GetDate()) as '一年中的第几周',
    DatePart(DAYOFYEAR,GetDate()) as '一年中的第几天',
    DatePart(year,GetDate()) as '年',
    DatePart(month,GetDate()) as '月',
    DatePart(day,GetDate()) as '日',
    DatePart(hour,GetDate()) as '时',
    DatePart(minute,GetDate()) as '分',
    DatePart(second,GetDate()) as '秒',
    DatePart(MILLISECOND,GetDate()) as '豪秒',
    DatePart(WEEKDAY,GetDate()) as '星期几'
    
    查询结果
    --1.显示本月第一天
    SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) 
    select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)
    
    
    --2.显示本月最后一天
    select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
    SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0)) 
    
    
    --3.上个月的最后一天 
    SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) 
    
    
    --4.本月的第一个星期一
    select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)
    
    
    --5.本年的第一天 
    SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0) 
    
    
    --6.本年的最后一天 
    SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
    
    
    --7.去年的最后一天 
    SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
    
    
    --8.本季度的第一天 
    SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)  
    
    
    --9.本周的星期一 
    SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0) 
    
    
    --10.查询本月的记录 
    --select * from tableName where DATEPART(mm, theDate) = DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 
    
    
    --11.查询本周的记录 
    --select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 
    
    
    --12.查询本季的记录 
    --select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 
    --其中:GETDATE()是获得系统时间的函数。
    
    
    --13.获取当月总天数:
    select DATEDIFF(dd,getdate(),DATEADD(mm, 1, getdate()))
    
    --14.获取当前为星期几
    select DATEpart(dw, getdate())
    
    
    --15. 当前系统日期、时间 
    select getdate() 
    
    
    --16. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
    --例如:向日期加上2天 
    select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
    
    
    --17. datediff 返回跨两个指定日期的日期和时间边界数。
    select datediff(day,'2004-09-01','2004-09-18') --返回:17
    
    
    --18. datepart 返回代表指定日期的指定日期部分的整数。
    SELECT DATEPART(month, '2004-10-15') --返回 10
    
    
    --19. datename 返回代表指定日期的指定日期部分的字符串
    SELECT datename(weekday, '2004-10-15') --返回:星期五
    
    
    --17. day(), month(),year() --可以与datepart对照一下
    select 当前日期=convert(varchar(10),getdate(),120),当前时间=convert(varchar(8),getdate(),114) 
    select datename(dw,'2004-10-15') 
    select 本年第多少周=datename(week,'2004-10-15'),今天是周几=datename(weekday,'2004-10-15')
    

    相关文章

      网友评论

          本文标题:date函数

          本文链接:https://www.haomeiwen.com/subject/sgndnqtx.html