SQL SERVER中的cast,convert,datediff,dateadd函數

來源:互聯網
上載者:User

1、cast

      cast(data as Data_Type)

 

例:declare @data int

      set @data=5

      select cast(@data as char(2))+'ABC' 

 

      -- 結果為: 5 ABC

 

2、convert

      convert(data_Type,expresses(,style))   -- style 為指定日期的樣式

      

  • select CONVERT(varchar,getdate(),120)
    --2009-03-15 15:10:02
  • select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
    --20090315151201
  • select CONVERT(varchar(12) , getdate(), 111)
    --2009/03/15
  • select CONVERT(varchar(12) , getdate(), 112)
    --20090315
  • select CONVERT(varchar(12) , getdate(), 102)
    --2009.03.15
  • select CONVERT(varchar(12) , getdate(), 108)
    --15:13:26
  • 其它我不常用的日期格式轉換方法:
  • select CONVERT(varchar(12) , getdate(), 101 )
    --03/15/2009
  • select CONVERT(varchar(12) , getdate(), 103 )
    --15/03/2009
  • select CONVERT(varchar(12) , getdate(), 104 )
    --15.03.2009
  • select CONVERT(varchar(12) , getdate(), 105 )
    --15-03-2009
  • select CONVERT(varchar(12) , getdate(), 106 )
    --15 03 2009
  • select CONVERT(varchar(12) , getdate(), 107 )
    -- 15, 2009
  • select CONVERT(varchar(12) , getdate(), 109 )
    --03 15 2009 
  • select CONVERT(varchar(12) , getdate(), 110 )
    --03-15-2009
  • select CONVERT(varchar(11) , getdate(), 113 )
    --15 03 2009
  • select CONVERT(varchar(12) , getdate(), 114)
    --15:15:55:717

3、datediff

      datediff(datepart,startdate,enddate)

      參數:datepart 列表

 

日期部分 縮寫
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

 

     

 

4、 dateadd(datepart,number,date)

      

       查看系統設定的每周的第一天    -- select  @@datefirst     

 

       datediff 與 dateadd 綜合使用執行個體:

       -- 查詢當月的第一天 

       select dateadd(mm,datediff(mm,0,getdate()),0)

 

       -- 查詢本周的星期一

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

 

       -- 查詢一年的第一天

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

 

       -- 查詢一個季度的第一天

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

 

       -- 查詢上個月的最後一天(相當於本月第一天減去1天)

      Select  dateadd(day,-1,DATEADD(mm, DATEDIFF(mm,0,getdate()),  0))

 

       -- 查詢去年的最後一天

       Select  dateadd(day,-1,DATEADD(yy, DATEDIFF(yy,0,getdate()),0) )

 

       -- 查詢本月的最後一天
       Select  dateadd(day,-1,DATEADD(mm,  DATEDIFF(mm,0,getdate())+1,  0))

 

       -- 查詢本年的最後一天

       Select  dateadd(day,-1,DATEADD(yy, DATEDIFF(yy,0,getdate())+1,0))

 

 

       -- 查詢本月的第一個星期一 

       這裡需要用到另外一個函數

       datepart(datepart,date)      -- 返回指定日期的指定類型的整數部分

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.