台灣最大程式設計社群網站
線上人數
750
 
會員總數:245598
討論主題:189304
歡迎您免費加入會員
討論區列表 >> MS SQL >> 請問mssql 欄位的時間如何轉成24小時制制
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問mssql 欄位的時間如何轉成24小時制制
價值 : 20 QP  點閱數:6398 回應數:9

樓主

阿優
初學者
117 179
3034 334
發送站內信

請問mssql 欄位的時間如何轉成24小時制
例如原本是是
2013/2/6 下午 07:51:29 >> 2013/2/6 19:51:29

搜尋相關Tags的文章: [ 請問mssql 欄位的時間如何轉成24小時制 ] ,
本篇文章發表於2013-06-28 09:44
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

史努比
檢舉此回應
那要看你在那裡做顯示了, 如果是在VB或是VC#

你可以在資料撈出來之後, 利用format的方式轉換成24小時制 Datetime.toString("yyyy/MM/dd HH:mm:ss")

日期時間欄位 其實在資料庫或是Excel裡只是一個有整數又有小數的「數字資料」, 只是電腦在呈現時另外再做了一些加工處理

以人類能理解的方式來呈現, 你不能接受預設的加工方式, 可以自訂如何做加工, 這個自訂的工作就是 Format

你的問題應該改成"如何讓MS-SQL將Datetime呈現方式改為24小時制", 而不是 "請問mssql 欄位的時間如何轉成24小時制制"

本篇文章回覆於2013-06-28 09:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

阿優
檢舉此回應
謝謝您的指教

我是要在sql裡顯示,因為我要和另一個資料庫去比對所以不是是vb ,vc#
本篇文章回覆於2013-06-28 10:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

pilipala
檢舉此回應

參考 CONVERT() 的 120 或 121,看符不符合需求 ~~
http://msdn.microsoft.com/zh-tw/library/ms187928.aspx
本篇文章回覆於2013-06-28 10:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

阿優
檢舉此回應
使用120 和和 121 都出現以下錯誤
Select (Convert(datetime, '2013/2/7 下午 07:10:09',120))

從字元字串轉換到 datetime 時,轉換失敗。

本篇文章回覆於2013-06-28 11:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

pilipala
檢舉此回應
看錯問題 ~~ ^^'' ~~

利用 SQL Server 2012 的新函數 - PARSE 來處理

本篇文章回覆於2013-06-28 13:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

阿優
檢舉此回應
@@
不好意思~有沒有 sql 2005 版的
本篇文章回覆於2013-06-28 13:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

Mark Shu
捐贈 VP 給 Mark Shu 檢舉此回應
這種從來源端改進比較快 insert資料進資料庫時 就要先轉成廿四小時制的
本篇文章回覆於2013-06-28 13:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
最有價值解答

Sdany
捐贈 VP 給 Sdany 檢舉此回應
同 #7

您的欄位型別一開始最好是 datetime
不要用 varchar 相關 來存日期時間

硬是要用 字串來存 就在存之前就先做好轉換

convert(datetime,'無法使用中文字轉換')

convert(datetime,'2013/2/7 07:10:09PM')
這個就沒問題

另外要使用 style ( 120 )
一般使用在 轉成文字型別才有用
convert(varchar(19), convert(datetime,'2013/2/7 07:10:09PM') ,120)

比對時,只要同 datetime 型別,就可以直接做比對
本身 datetime 型別 無需管本身是否為 24

※您的問題:必需另新開一個欄位datetime型別
將原有的字串日期時間 中文 修改成datetime可讀的字串
存入新的欄位,程式方面要修改成新的欄位


以下相關作法供您參考


本篇文章回覆於2013-06-28 14:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

pilipala
檢舉此回應

Sdany 大提供的語法,再加上 ISDATE() 檢查整理過後的字串日期,再進行轉換,可以避免 Error,
2012 的話就可以用 TRY_CONVERT() 直接檢查轉換

把日期利用字元來儲存,不是一個好方法,原因
1. 日期有效性 => 會出現無效的日期,EX:20130230、20130001、20131301、20130532
2. 字串日期格式不一致 => 2013/06/01、2013-06-01、20130601、2013/6/1
3. 內件函數使用 => 內鍵函數,EX:DATEADD()、DATEDIFF() 等無法使用,必須自行撰寫函數處理
本篇文章回覆於2013-06-28 15:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.