IT人生
          專注于java相關技術.
          posts - 53,comments - 87,trackbacks - 0
          問題提出:
          經常會有這樣的查詢要求,輸入或者日歷控件產生的日期格式為 yyyy-mm-dd,而數據庫中的字段是datetime類型,即yyyy-mm-dd hh:mm:ss。如果簡單的使用between語句或者=語句進行查詢,查詢結果可能是錯誤或者數據不全。
          假設 數據庫中有 2008-2-27 日的數據,但直接使用 fielddate='2008-2-27' 或者使用 between '2008-2-27' and '2008-2-27'將不能查到該天的數據。

          問題解決:
          使用SQL Server提供的Convert函數進行轉換,由于2008-02-27最長是10位,所以使用如下語句 convert(varchar(10),fielddate,121))進行轉換,其中fielddate為數據表的字段名。這樣在查詢時數據庫得到參數后先自動將數據庫內的信息轉換為yyyy-mm-dd格式的10位字符,只要與參數相同即可返回查詢結果.而convert中的121是指將datetime類型轉換為char類型時獲得包括世紀位數的4位年份。
          Convert函數的一些說明,以下資料來源于網絡

          不帶世紀數位 (yy) 帶世紀數位 (yyyy)
          標準

          輸入/輸出**
          - 0 或 100 (*) 默認值 mon dd yyyy hh:miAM(或 PM)
          1 101 美國 mm/dd/yyyy
          2 102 ANSI yy.mm.dd
          3 103 英國/法國 dd/mm/yy
          4 104 德國 dd.mm.yy
          5 105 意大利 dd-mm-yy
          6 106 - dd mon yy
          7 107 - mon dd, yy
          8 108 - hh:mm:ss
          - 9 或 109 (*) 默認值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
          10 110 美國 mm-dd-yy
          11 111 日本 yy/mm/dd
          12 112 ISO yymmdd
          - 13 或 113 (*) 歐洲默認值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
          14 114 - hh:mi:ss:mmm(24h)
          - 20 或 120 (*) ODBC 規范 yyyy-mm-dd hh:mm:ss[.fff]
          - 21 或 121 (*) ODBC 規范(帶毫秒) yyyy-mm-dd hh:mm:ss[.fff]
          - 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
          - 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
          - 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

          *    默認值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀數位 (yyyy)。
          ** 當轉換為 datetime 時輸入;當轉換為字符數據時輸出。
          *** 專門用于 XML。對于從 datetimesmalldatetimecharacter 數據的轉換,輸出格式如表中所示。對于從 floatmoneysmallmoneycharacter 數據的轉換,輸出等同于 style 2。對于從 realcharacter 數據的轉換,輸出等同于 style 1。

          使用 CONVERT:
          CONVERT (data_type[(length)], expression [, style])

          select CONVERT(varchar, getdate(), 120 )
          2004-09-12 11:06:08

          select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\')
          20040912110608

          select CONVERT(varchar(12) , getdate(), 111 )
          2004/09/12

          select CONVERT(varchar(12) , getdate(), 112 )
          20040912

          select CONVERT(varchar(12) , getdate(), 102 )
          2004.09.12

          select CONVERT(varchar(12) , getdate(), 101 )
          09/12/2004

          select CONVERT(varchar(12) , getdate(), 103 )
          12/09/2004

          select CONVERT(varchar(12) , getdate(), 104 )
          12.09.2004

          select CONVERT(varchar(12) , getdate(), 105 )
          12-09-2004

          select CONVERT(varchar(12) , getdate(), 106 )
          12 09 2004

          select CONVERT(varchar(12) , getdate(), 107 )
          09 12, 2004

          select CONVERT(varchar(12) , getdate(), 108 )
          11:06:08

          select CONVERT(varchar(12) , getdate(), 109 )
          09 12 2004 1

          select CONVERT(varchar(12) , getdate(), 110 )
          09-12-2004

          select CONVERT(varchar(12) , getdate(), 113 )
          12 09 2004 1

          select CONVERT(varchar(12) , getdate(), 114 )
          11:06:08.177


          [ 2008-02-27 10:35:42 | 作者: Sage ]  原文http://www.soview.net/blog/article.asp?id=444

          減肥瘦身品總匯     值得信賴*脈脈美妝*正品現貨謝絕講價     〓深港商盟〓名品歐衣坊(美國休閑品牌AF系列)     QQ三國游戲幣及道具專賣店     小臉紅紅的瘦身旗艦店
          posted on 2009-04-21 10:07 龍華城 閱讀(2360) 評論(0)  編輯  收藏 所屬分類: 數據庫
          主站蜘蛛池模板: 额敏县| 墨竹工卡县| 扎囊县| 呼图壁县| 金门县| 勐海县| 土默特右旗| 双牌县| 泉州市| 偃师市| 襄汾县| 平乡县| 富平县| 鹰潭市| 海城市| 贵州省| 卢湾区| 大同县| 霍山县| 林芝县| 汶上县| 新竹县| 博白县| 康保县| 兰溪市| 筠连县| 永登县| 双鸭山市| 崇州市| 巩留县| 吉木乃县| 绥芬河市| 定远县| 宜城市| 德化县| 永修县| 额尔古纳市| 克山县| 东乌珠穆沁旗| 揭东县| 上饶市|