posts - 82, comments - 269, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          SQL server 常用時間函數[轉]

          Posted on 2008-04-29 09:25 itspy 閱讀(573) 評論(2)  編輯  收藏 所屬分類: 小巧實例其它技術
          來源:http://www.xici.net/b3761/d43293.htm

          在開發數據庫應用中,經常會遇到處理時間的問題,如查詢指定時間的記錄等。下面就這些常見的問題,結合自己的一些經驗,和大家探討一下這類問題。

          首先介紹一下,SQL Server里處理時間的幾個主要函數的用法:


          getdate()函數:取得系統當前的日期和時間。返回值為datetime類型的。 
                 用法:getdate()
                 例子:
                 select getdate() as dte,dateadd(day,-1,getdate()) as nowdat
                 輸出結果:
                 dte              nowdat
                 ---------------------------  ---------------------------
                 1999-11-21 19:13:10.083    1999-11-20 19:13:10.083
            
                 (1 row(s) affected)
                 
          datepart()函數:以整數的形式返回時間的指定部分。
                  用法:datepart(datepart,date)
                  參數說明:datepart時要返回的時間的部分,常用取值year、month、day、hour、minute。
                       date是所指定的時間。
                  例子:
                  SELECT DATEPART(month, GETDATE()) AS 'Month Number'
                  輸出結果:
                  Month Number
                  ------------
                  11

                  (1 row(s) affected)

          dateadd()函數:通過給指定的時間的指定部分加上一個整數值以返回一個新時間值。
                  用法:dateadd(datepart,number,date)
                  參數說明:datepart(同上)
                       date(同上)
                       number要增加的值,整型,可正可負,正值返回date之后的時間值,負值返回date
                       之前的時間值
                  例子:
                   select getdate() as today
                   select dateadd(day,-1,getdate())
                   select dateadd(day,1,getdate())
                  輸出:
                   today           
                   ---------------------------
                   1999-11-21 19:42:41.410

                   (1 row(s) affected)

                   yesterday         
                   ---------------------------
                   1999-11-20 19:42:41.410

                   (1 row(s) affected)

                   tomorrow          
                   ---------------------------
                   1999-11-22 19:42:41.410

                   (1 row(s) affected)

          datediff()函數:返回兩個時間以指定時間部分來計算的差值。返回整數值。如1991-6-12和1991-6-21之間以天
                  來算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9個月
                  用法:datediff(darepart,date1,date2)
                  參數說明:datepart(同上)
                       date1、date2(同上date)
                  例子:
                   select datediff(month,'1991-6-12','1992-6-21') as a
                  輸出:
                   a     
                   -----------
                   12

                   (1 row(s) affected)

          評論

          # re: SQL server 常用時間函數[轉]  回復  更多評論   

          2008-05-07 15:00 by itspy
          下面的SQL相當于Oracle的Trunc

          select convert(varchar(10), getdate() ,20 )

          # re: SQL server 常用時間函數[轉]  回復  更多評論   

          2008-12-30 13:18 by 北京時間
          hao
          主站蜘蛛池模板: 灯塔市| 内黄县| 望都县| 黑龙江省| 阿克| 盈江县| 肥乡县| 乌兰察布市| 邳州市| 蓝山县| 漳平市| 武穴市| 碌曲县| 东丰县| 桦南县| 黑龙江省| 凤凰县| 山阳县| 禄丰县| 云阳县| 隆回县| 桦川县| 兴隆县| 大渡口区| 黄山市| 古交市| 美姑县| 仙桃市| 兴隆县| 沅江市| 石景山区| 双峰县| 巴青县| 绩溪县| 海丰县| 平乡县| 兰溪市| 瓦房店市| 九江市| 南漳县| 敖汉旗|