今天在工作時,遇到一個問題,客戶那裡的table,有一個存時間的欄位,因為之前程式的問題,寫入的格式是錯誤

之前是寫入 ex: 9:32:1,雖然用看的就知道是9點32分1秒,但對於sql server要比對時間資料的判斷會有問題

正確的應寫入 ex: 09:32:01,這樣在比對的時候才會對,改了程式之後,寫入的格式就對了

但...之前的資料怎麼辦呢?

可以使用 datename各取時,分,秒,然後再組起來就可以了

以下為更新語法

update table1

set rec_time=

case when

--判斷"" ,是否只有1位數,是的話,就補0

len(datename(hh,rec_time))=1 then '0'+datename(hh,rec_time) else datename(hh,rec_time)end +':'+

case when

--判斷"" ,是否只有1位數,是的話,就補0

len(datename(mi,rec_time))=1 then '0'+datename(mi,rec_time) else datename(mi,rec_time)end +':'+

case when

--判斷"" ,是否只有1位數,是的話,就補0

len(datename(ss,rec_time))=1 then '0'+datename(ss,rec_time) else datename(ss,rec_time)end

where Convert(char,Rec_date,111)='2008/12/27'

 

 

如果你有欄位是只放日期,想要組合時間欄位的話

Ex:

Col1

col2

2008/12/31 00:00:00

09:32:11

 那就要用

Convert(char,col1,111)+' '+col2,這樣sql server才不會把col2的秒進位到分

組起來的結果為 2008/12/31 09:32:11

如果不是用Convert(char,col1,111),而是直接組的話,例如col1+' '+col2

組起來的結果會2008/12/31 09:33:00,這樣就錯了哦

所以要注意

正確的組法

Select Convert(char,col1,111)+' '+col2 from table1

信德隨想印章

創作者介紹

信德隨想

丫德 發表在 痞客邦 PIXNET 留言(0) 人氣()