我现在的位置:

微知识 - 知识分享 - 电脑网络 - 数据库
知识分享
  1. SQL Server 常用日期函数DateDiff()、GetDate() 等详解

    完善时间:2019-03-21 09:46:12会员:倩华目录:电脑网络 - 数据库浏览:6275 次

    一、GetDate() 函数 

    作用: 

    GetDate() 函数用于返回当前的时间和日期,返回值样式举例:2013/10/29 9:11:05 

    语法: 

    GetDate()

    ASP 实例: 

    <%
     '数据库链接定义省略
     sql="SELECT GetDate() AS CurrentDateTime"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write rs("CurrentDateTime")
     end if
     rs.close
     set rs=nothing
     %>
    


    二、DateDiff() 函数  

    作用:  

    DateDiff() 函数返回“开始日期”与“结束日期”之间的差值(如:年、天数等)。

    返回值类型 

    DateDiff() 函数返回值类型为:Long(长整型),范围从 -2,147,483,648 到 2,147,483,647。

    语法:  

    DateDiff(参数 , 开始日期 , 结束日期)

    参数取值 

    说明 

    参数写法 

    参数简写 

    最大 

     

    Year 

    yy 

      


    季度 

    Quarter 

    q 

      


     

    Month 

    m 

      


     

    Week 

    wk 

      


     

    Day 

    d 

      


    小时 

    Hour 

    hh 

      


    分钟 

    Minute 

    mi 

      


     

    Second 

    s 

    68年 

    毫秒 

    Millisecond 

    ms 

    24天20小时31分23.648秒 

    ASP 实例:  

    <%
     '数据库链接定义省略
     sql="SELECT DateDiff(ms,'2013-1-1','2013-1-25 20:31:23.648') AS DiffVal"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write rs("DiffVal")
     end if
     rs.close
     set rs=nothing
     '输出:2147483646(毫秒)
    
     sql="SELECT DateDiff(Week,'2013-10-20','2014-10-20') AS DiffVal"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write " "&rs("DiffVal")
     end if
     rs.close
     set rs=nothing
     '输出:52(周)
    
     sql="SELECT DateDiff(d,'2013-10-20',GetDate()) AS DiffVal"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write " "&rs("DiffVal")
     end if
     rs.close
     set rs=nothing
     '当前系统日期为:2013-10-29,输出:9(天)
     %>
    


    三、DateAdd() 函数  

    作用:  

    DateAdd() 函数用于在指定日期增加(或减去)参数设定的间隔。
    语法: 
    DateAdd(参数 , 加(减)间隔 , 指定日期) 
    参数取值:  

    说明 

    参数写法 

    参数简写 

     

    Year 

    yy 

    季度 

    Quarter 

    q 

     

    Month 

    m 

     

    Week 

    wk 

     

    Day 

    d 

    小时 

    Hour 

    hh 

    分钟 

    Minute 

    mi 

     

    Second 

    s 

    毫秒 

    Millisecond 

    ms 

    ASP 实例:  

    <%
     '数据库链接定义省略
     sql="SELECT DateAdd(day,5,'2013-1-1') AS DateAddVal"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write rs("DateAddVal")
     end if
     rs.close
     set rs=nothing
     '输出:2013/1/6
    
     sql="SELECT DateAdd(s,10,'2013-1-1') AS DateAddVal"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write rs("DateAddVal")
     end if
     rs.close
     set rs=nothing
     '输出:2013/1/1 0:00:10
    
     sql="SELECT DateAdd(mi,-1,'2013-1-1') AS DateAddVal"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write rs("DateAddVal")
     end if
     rs.close
     set rs=nothing
     '输出:2012/12/31 23:59:00
     %>
    


    四、Convert() 函数 

    作用: 

    Convert() 函数用来将日期转换为指定样式的新数据类型。

    语法: 

    Convert(数据类型(长度) , 需转换日期 , 样式参数)

    常用参数取值:  

    样式参数 

    样式说明 

    长度 

    101 

     mm/dd/yyyy 

    10 

    110 

     mm-dd-yyyy 

    10 

    103 

     dd/mm/yyyy 

    10 

    105 

     dd-mm-yyyy 

    10 

    111 

     yyyy/mm/dd 

    10 

    112 

     yyyymmdd 

    8 

    108 

     hh:mm:ss 

    8 

    114 

     hh:mm:ss:mmm 

    12 

    120 

     yyyy-mm-dd hh:mm:ss 

    19 

    121 

     yyyy-mm-dd hh:mm:ss.mmm 

    23 

     

     ASP 实例: 

    <%
     '数据库链接定义省略
     sql="SELECT Convert(VarChar(19),GetDate(),120) AS DateConvert"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write rs("DateConvert")
     end if
     rs.close
     set rs=nothing
     '输出:2013-10-29 11:07:44
    
     sql="SELECT Convert(VarChar(12),GetDate(),114) AS DateConvert"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write " "&rs("DateConvert")
     end if
     rs.close
     set rs=nothing
     '输出:11:11:14:563
     %>
    


    五、DatePart() 函数 

    作用: 

    DatePart() 函数用来返回日期(时间)参数指定的部份,如年、月、日、时、分、秒等。

    语法: 

    DatePart(参数 , 日期)

    参数取值: 

    说明 

    参数写法 

    参数简写 

     

    Year 

    yy 

    季度 

    Quarter 

    q 

     

    Month 

    m 

     

    Week 

    wk 

     

    Day 

    d 

    小时 

    Hour 

    hh 

    分钟 

    Minute 

    mi 

     

    Second 

    s 

    毫秒 

    Millisecond 

    ms 

     ASP 实例: 

    <%
     '数据库链接定义省略
     sql="SELECT DatePart(mi,'2013-10-01 23:12:09.456') AS PartDate"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write rs("PartDate")
     end if
     rs.close
     set rs=nothing
     '输出:12(分钟部分)
    
     sql="SELECT DatePart(ms,'2013-10-01 23:12:09.456') AS PartDate"
     Set rs=Server.CreateObject("ADODB.RecordSet")
     rs.open sql, conn, 1, 1
     if not(rs.bof and rs.eof) then
      Response.Write rs("PartDate")
     end if
     rs.close
     set rs=nothing
     '输出:457(毫秒部分,有误差)
     %>
    


    六、FormatDateTime()函数

    作用:

    FormatDateTime() 函数用来格式化并返回一个合法的日期或时间表达式。

    语法:

    FormatDateTime(日期 , 日期/时间格式)

    参数取值:

    日期/时间格式参数
    说明

    0

    (l默认值)

    显示日期和/或时间。

    如果有日期部分,则将该部分显示为短日期格式。

    如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。

    1
    使用计算机区域设置中指定的长日期格式显示日期。
    2
    使用计算机区域设置中指定的短日期格式显示日期。
    3
    使用此格式显示时间:hh:mm:ss PM/AM
    4
    使用 24 小时格式 (hh:mm) 显示时间。

    ASP实例:

    <%
    dim DateStr
    DateStr="2019-6-1 7:3"
    response.write FormatDateTime(DateStr)    '返回:2019/6/1 7:03:00
    response.write FormatDateTime(DateStr,1)    '返回:2019年6月1日
    response.write FormatDateTime(DateStr,2)    '返回:2019/6/1
    response.write FormatDateTime(DateStr,3)    '返回:7:03:00
    response.write FormatDateTime(DateStr,4)    '返回:07:03
    %>


联系方式:

南京贝加达电子科技有限公司

  • 地址:南京市江北新区柳州北路21号涤太太科技大楼2F
  • 联系人:焦倩华(先生)
  • 手机:13813916308
  • 邮箱:Ser@bekda.com
  • 服务专线:400-8282-116
©2010-2024 Bekda Electronic Technology Co., Ltd. All right reserved.

苏公网安备 32011102010041号

320111201705278429

苏ICP备12027725号