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

          公告

          收藏夾

          搜索

          •  

          積分與排名

          • 積分 - 270274
          • 排名 - 211
          來源:http://www.xici.net/b3761/d43293.htm

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

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


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

                  (1 row(s) affected)

          dateadd()函數(shù):通過給指定的時間的指定部分加上一個整數(shù)值以返回一個新時間值。
                  用法:dateadd(datepart,number,date)
                  參數(shù)說明: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()函數(shù):返回兩個時間以指定時間部分來計算的差值。返回整數(shù)值。如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)
                  參數(shù)說明:datepart(同上)
                       date1、date2(同上date)
                  例子:
                   select datediff(month,'1991-6-12','1992-6-21') as a
                  輸出:
                   a     
                   -----------
                   12

                   (1 row(s) affected)

          評論

          # re: SQL server 常用時間函數(shù)[轉(zhuǎn)]  回復  更多評論   

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

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

          # re: SQL server 常用時間函數(shù)[轉(zhuǎn)]  回復  更多評論   

          2008-12-30 13:18 by 北京時間
          hao
          主站蜘蛛池模板: 大化| 喜德县| 九龙城区| 虹口区| 奈曼旗| 天祝| 武陟县| 云和县| 旬邑县| 兰西县| 山东省| 高台县| 会宁县| 瑞金市| 富顺县| 泸西县| 晴隆县| 精河县| 达拉特旗| 永胜县| 岳阳县| 泗水县| 淮南市| 澳门| 西乌珠穆沁旗| 平顺县| 舒城县| 通山县| 广宁县| 佳木斯市| 出国| 四平市| 南宁市| 本溪市| 双柏县| 花莲市| 黄石市| 通渭县| 玉门市| 富川| 宜川县|