mssql時間関数の処理方法について




1.       、  
select getdate() 
2. dateadd                 ,     datetime  
  :     2 
select dateadd(day,2,'2004-10-15') --  :2004-10-17 00:00:00.000

3. datediff                   。
select datediff(day,'2004-09-01','2004-09-18') --  :17

4. datepart                   。
SELECT DATEPART(month, '2004-10-15') --   10

5. datename                    
SELECT datename(weekday, '2004-10-15') --  :   

6. 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')

     /   
GetDate( )              
DateDiff (interval,date1,date2)  interval      ,  date2  date1          date2-date1 
DateAdd (interval,number,date)  interval     ,  number      
DatePart (interval,date)     date ,interval            
DateName (interval,date)     date ,interval              

   interval      :

     (Sql Server) Access   ASP    
Year Yy yyyy   1753 ~ 9999 
Quarter Qq q   1 ~ 4 
Month Mm m  1 ~ 12 
Day of year Dy y      ,        1-366 
Day Dd d  ,1-31 
Weekday Dw w      ,        1-7 
Week Wk ww  ,        0 ~ 51 
Hour Hh h  0 ~ 23 
Minute Mi n   0 ~ 59 
Second Ss s   0 ~ 59 
Millisecond Ms -    0 ~ 999 

access   asp   date() now()        ;  DateDiff,DateAdd,DatePart      Access asp ,          

  :
1.GetDate()   sql server :select GetDate()

2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')     514592  
DateDiff('d','2005-07-20','2005-7-25 22:56:32')     5  

3.DatePart('w','2005-7-25 22:56:32')     2     (   1,   7)
DatePart('d','2005-7-25 22:56:32')     25 25 
DatePart('y','2005-7-25 22:56:32')     206      206 
DatePart('yyyy','2005-7-25 22:56:32')     2005 2005  

SQL Server DATEPART()      SQLServer datetime       。 

SQL Server DATEPART()       : 
DATEPART(portion, datetime)
   datetime   SQLServer datetime              : Ms for Milliseconds
Yy for Year
Qq for Quarter of the Year
Mm for Month
Dy for the Day of the Year
Dd for Day of the Month
Wk for Week
Dw for the Day of the Week
Hh for Hour
Mi for Minute
Ss for Second

     :

  ,                   ,  ,                       。                    ( 、 、  ),           、 、                    !      ,         DATEADD DATEDIFF                         。 
           ,          。                            ,                      。   (DATEFIRST)                      。                        ,         7。            ,           ,              。     @@DATEFIRST          。 

        ,       DATEDIFF DATEADD  。DATEDIFF             、 、 、 、        。DATEADD                          。      DATEDIFF DATEADD                  。 

  DATEDIFF DATEADD       ,                          。               。  ,                      ,  ,       (  1900-1-1)         ,  。                               。 

        

     ,                     。   :                     DATEDIFF DATEADD            。                  ,                。 

           SQL   : 
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 

                   。       getdate(),                       。        DATEDIFF(mm,0,getdate())        “1900-01-01 00:00:00.000”         。  :              “1900-01-01 00:00:00.000”     。          DATEDIFF              “0”。      DATEADD,       “1900-01-01”   。          “1900-01-01”        ,             。  ,               “00:00:00.000”。 

                “1900-01-01”      ,      “1900-01-01”         ,                 。                         。 


       

      (wk)                  。 

SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 

       

    (yy)               。 

SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 

       

              ,           。 

SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 

      

      getdate()               ,               。    ,      DATEDIFF DATEADD           。 

SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 

  DATEDIFF DATEADD     

     ,       DATEDIFF DATEADD    ,                  。 

                     “1900-01-01”         ,      “1900-01-01”            。            ,              DATEADD  ,             ,                      。 

             DATEADD              DATEADD          。 

         

                。                   3     。      , Sql Server       3  。           3             。 

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 

                 Sql Server            (“23:59:59:997”)   。 

        

       ,            ,             3  。 

SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 

        

  ,           ,                      。      DATEDIFF       “1900-01-01”         1。   1  ,           ,    3  ,               。           SQL  。 

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 

        

            ,             

SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

          

  ,         。                。       。 

select DATEADD(wk, DATEDIFF(wk,0,
dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

      ,    “      ”