zoukankan      html  css  js  c++  java
  • TSQL常用日期函数

    /*
    
    Environment: win7 + sql server 2008 r2
    Author: CC
    Desctiption:
        常用日期函数整理:
        DAY,MONTH,YEAR  , DATEPART
        DATEADD,DATENAME ,
        DATEDIFF ,isdate 的使用
    */
    
    --截取一个时间的年,月,日
    select DAY(GETDATE())
          ,MONTH(GETDATE()) --MONTH() 函数的参数为整数时,一律返回整数值1,即SQL Server 认为其是1900 年1 月。 
          ,YEAR(GETDATE())  --其日期值应在1753年到9999年之间,这是SQL Server系统所能识别的日期范围,否则会出现错误。 
    --运用DATEPART函数
    UNION ALL 
    SELECT  DATEPART(DAY , GETDATE())
            ,DATEPART(MONTH , GETDATE())
            ,DATEPART(YEAR , GETDATE())
    /*
    (无列名)    (无列名)    (无列名)
    17    7    2012
    17    7    2012
    */
    
    SELECT DATENAME (DD,GETDATE())  --返回类型为字符型
     /* (无列名)
        17      */
    
    --用 dateadd 来获得下一个时间或之前的时间日期
    
     select   DATEADD (DD , 1 , getdate())  --当前时间的下一天
            , DATEADD (MM , 1 , getdate())  --当前时间的下一个月
            , DATEADD (YY , 1 , getdate())  --当前时间的下一年
            , DATEADD (DD , -1 , getdate()) --当前时间的前一天
            , DATEADD (MM , -1 , getdate()) --当前时间的前一个月
            , DATEADD (YY , -1 , getdate()) --当前时间的前一年
            
    --2012-07-18 15:47:05.663    2012-08-17 15:47:05.663    2013-07-17 15:47:05.663    2012-07-16 15:47:05.663    2012-06-17 15:47:05.663    2011-07-17 15:47:05.663
    
    SELECT DATEDIFF(DD,'2012-07-11 15:03:11.623',GETDATE())   --时间差
    --6
    
    SELECT DATENAME(dayofyear,GETDATE()) ,DATEDIFF(dd,'2012-01-01',getdate())
    --199    198
    
    SELECT DATENAME(year, GETDATE())   
        ,DATENAME(month,  GETDATE())    
        ,DATENAME(day,  GETDATE())     
        ,DATENAME(week,GETDATE()) 
        ,DATENAME(dayofyear, GETDATE())
        ,DATENAME(weekday,  GETDATE());  
     --2012    July    17    29    199    Tuesday
           
    SELECT DATENAME(hour, GETDATE())  --当天的第几个小时
        ,DATENAME(minute,GETDATE())          --当天小时的第几分
        ,DATENAME(second, GETDATE());      --当天小时分钟的第几秒
    ---15    48    9
    
    SELECT ISDATE('2012-07-17') UNION ALL
    SELECT ISDATE('2012-07-17 15:12:00') UNION ALL
    SELECT ISDATE(111)
    /*
    1
    1
    0
    */
    
    /*
    函数        语法                                返回值                                            返回数据类型    
    DAY            DAY ( date )                        返回表示指定 date 的“日”部分的整数。            int    具有确定性
    MONTH        MONTH ( date )                        返回表示指定 date 的“月”部分的整数。            int    具有确定性
    YEAR        YEAR ( date )                        返回表示指定 date 的“年”部分的整数。            int    具有确定性
    DATENAME    DATENAME ( datepart , date )        返回表示指定日期的指定 datepart 的字符串。        nvarchar    
    DATEPART    DATEPART ( datepart , date )        返回表示指定 date 的指定 datepart 的整数。        int    
    DATEDIFF    DATEDIFF ( datepart , startdate , enddate )    返回两个指定日期之间所跨的日期或时间 datepart 边界的数目。    int    具有确定性
    DATEADD        DATEADD (datepart , number , date )    通过将一个时间间隔与指定 date 的指定 datepart 相加,返回一个新的 datetime 值。    
    
    ISDATE        ISDATE ( expression )    确定 datetime 或 smalldatetime 输入表达式是否为有效的日期或时间值。
                int    只有与 CONVERT 函数一起使用,同时指定了 CONVERT 样式参数且样式不等于 0、100、9 或 109 时,ISDATE 才是确定的。
    */
  • 相关阅读:
    llvm,gcc
    smp,numa,mpp,umam,olap,dss,oltp,greenplum,presto
    数据结构学习时的零散算法
    Hadoop 伪分布式上安装 HBase
    可以ping通虚拟机但不能telnet 9000端口
    北邮连接bupt-mobile
    北邮软院机试2018
    研究生面试自我介绍
    Java面试题
    操作系统面试题
  • 原文地址:https://www.cnblogs.com/zerocc/p/2595341.html
Copyright © 2011-2022 走看看