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

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

          不帶世紀(jì)數(shù)位 (yy) 帶世紀(jì)數(shù)位 (yyyy)
          標(biāo)準(zhǔn)

          輸入/輸出**
          - 0 或 100 (*) 默認(rèn)值 mon dd yyyy hh:miAM(或 PM)
          1 101 美國(guó) mm/dd/yyyy
          2 102 ANSI yy.mm.dd
          3 103 英國(guó)/法國(guó) dd/mm/yy
          4 104 德國(guó) 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 (*) 默認(rèn)值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
          10 110 美國(guó) mm-dd-yy
          11 111 日本 yy/mm/dd
          12 112 ISO yymmdd
          - 13 或 113 (*) 歐洲默認(rèn)值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
          14 114 - hh:mi:ss:mmm(24h)
          - 20 或 120 (*) ODBC 規(guī)范 yyyy-mm-dd hh:mm:ss[.fff]
          - 21 或 121 (*) ODBC 規(guī)范(帶毫秒) 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

          *    默認(rèn)值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀(jì)數(shù)位 (yyyy)。
          ** 當(dāng)轉(zhuǎn)換為 datetime 時(shí)輸入;當(dāng)轉(zhuǎn)換為字符數(shù)據(jù)時(shí)輸出。
          *** 專門用于 XML。對(duì)于從 datetimesmalldatetimecharacter 數(shù)據(jù)的轉(zhuǎn)換,輸出格式如表中所示。對(duì)于從 floatmoneysmallmoneycharacter 數(shù)據(jù)的轉(zhuǎn)換,輸出等同于 style 2。對(duì)于從 realcharacter 數(shù)據(jù)的轉(zhuǎn)換,輸出等同于 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

          減肥瘦身品總匯     值得信賴*脈脈美妝*正品現(xiàn)貨謝絕講價(jià)     〓深港商盟〓名品歐衣坊(美國(guó)休閑品牌AF系列)     QQ三國(guó)游戲幣及道具專賣店     小臉紅紅的瘦身旗艦店
          posted on 2009-04-21 10:07 龍華城 閱讀(2366) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫(kù)
          主站蜘蛛池模板: 麻栗坡县| 神木县| 长顺县| 富蕴县| 曲沃县| 恩平市| 湖口县| 宁武县| 韶山市| 常山县| 九江市| 泌阳县| 鱼台县| 巴里| 庆安县| 宜州市| 托里县| 八宿县| 和田市| 同仁县| 昭通市| 龙陵县| 桓台县| 长宁区| 延边| 德江县| 滕州市| 尼玛县| 南通市| 贵阳市| 开平市| 读书| 巨野县| 清徐县| 南靖县| 沙田区| 富裕县| 肇州县| 溧阳市| 永嘉县| 扎鲁特旗|