線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3096
推到 Plurk!
推到 Facebook!

請問如何轉換格式(varchar==>日期)

尚未結案
saningamour
一般會員


發表:18
回覆:17
積分:7
註冊:2003-11-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-19 17:46:38 IP:211.22.xxx.xxx 未訂閱
請教一下各位前輩 小弟目前資料庫有一個欄位記錄日期 格式為 2004/7/16 下午 12:54:08 欄位型態為varchar 小弟想在下SQL時 把這個欄位轉成日期格式再加以排序排序 小弟搜尋了之前的文章 也試了很多方法 可是還是沒辦法將這個欄位轉換成日期格式 都會發生以下錯誤訊息 [SQL server]從字元(char)字串轉換到datetime的語法錯誤 請問一下各位前輩要如何解決呢?? 謝謝喔
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-19 17:58:12 IP:218.80.xxx.xxx 未訂閱
用CAST 或者CONVERT都行
saningamour
一般會員


發表:18
回覆:17
積分:7
註冊:2003-11-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-19 18:07:19 IP:211.22.xxx.xxx 未訂閱
sl@cableplus.com.cn 前輩您好 感謝您的回應 可是 小弟之前就有用這兩個函數了 如 CONVERT(datetime, '2004/7/16 下午 12:54:08', 100) 可是還是會出現該錯誤訊息
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-19 22:18:43 IP:61.229.xxx.xxx 未訂閱
引言: 如 CONVERT(datetime, '2004/7/16 下午 12:54:08', 100) 可是還是會出現該錯誤訊息
我想應該是你傳入的格式不正確吧,記得沒錯的話,'2004/7/16 下午 12:54:08'應該不是正確的格式,應該是'Jul 16 2004 12:54',如果參數是帶100的話.雖然我手上沒有convert的參數說明,但我認為應該是傳入的參數錯誤導致,你可以直接把一個DATETIME型態的資料以convert轉成varchar,看看是什麼樣子,以該格式傳入應該就可以了
saningamour
一般會員


發表:18
回覆:17
積分:7
註冊:2003-11-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-20 09:22:24 IP:211.22.xxx.xxx 未訂閱
change.jian前輩您好 感謝您的回答 不過'2004/7/16 下午 12:54:08'正是該欄位的格式 而小弟目前也希望由此欄位做排序 請問有什麼SQL語法能解決這個問題嗎?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-20 09:44:22 IP:203.95.xxx.xxx 未訂閱
hi, 若資料庫為 MSSQL 的話, 可以利用 case 的方式配合來進行轉換, 但會有效能上的問題, 若資料量不多, 若可以較慢的速度可以接受的話, 可以這麼下:    
select convert(datetime,
  case
  when charindex('上午', dt) > 0 then replace(dt, '上午', '')+' AM' 
  when charindex('下午', dt) > 0 then replace(dt, '下午', '')+' PM' 
  else null
  end) as mydatetime, f1, f2, f3 ... from mytable
其中 dt 為你資料表中的存時間的 varchar 欄位, mydatetime 為轉型後的 alias name, 若是格式不對會被轉為 null, 這個部分你可以自行調整!
saningamour
一般會員


發表:18
回覆:17
積分:7
註冊:2003-11-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-20 12:33:26 IP:211.22.xxx.xxx 未訂閱
多謝timhuang前輩的指教 這樣真的可以了呢 沒想到SQL語法還能這樣用 謝謝囉
系統時間:2024-05-18 16:34:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!