SELECT |
2017年7月13日 星期四
取得MSSQL伺服器的相關資訊,如IP,PORT
2017年7月12日 星期三
REAL/FLOAT欄位,取到小數點第4位(無條件捨去)
參考了網路的做法,但有一些問題無法排除
網路的解法為:round(VcutMeter,4,1)
但原本1.52會變成1.159 如下圖:
經過反覆測試,改用以下方式:
1.轉成varchar型態
2.len(round(VcutMeter,0,1))+1+4 為計算需要取到字串的第幾位,剛好可以取得小數點第4位
3.把取得的字串轉成numeric(10,4)
作法如下:
select VcutMeter
,substring(CAST(VcutMeter as varchar(50)),1,len(round(VcutMeter,0,1))+1+4)
,Cast(substring(CAST(VcutMeter as varchar(50)),1,len(round(VcutMeter,0,1))+1+4) as numeric(10,4))
from prodbasic
Where VcutMeter is not null
>>>len(round(VcutMeter,0,1))+1+4) 解法如下:
round(VcutMeter,0,1) : 取得整數部分
+1 : 小數點
+4 : 取小數點第4位
網路的解法為:round(VcutMeter,4,1)
但原本1.52會變成1.159 如下圖:
經過反覆測試,改用以下方式:
1.轉成varchar型態
2.len(round(VcutMeter,0,1))+1+4 為計算需要取到字串的第幾位,剛好可以取得小數點第4位
3.把取得的字串轉成numeric(10,4)
作法如下:
select VcutMeter
,substring(CAST(VcutMeter as varchar(50)),1,len(round(VcutMeter,0,1))+1+4)
,Cast(substring(CAST(VcutMeter as varchar(50)),1,len(round(VcutMeter,0,1))+1+4) as numeric(10,4))
from prodbasic
Where VcutMeter is not null
>>>len(round(VcutMeter,0,1))+1+4) 解法如下:
round(VcutMeter,0,1) : 取得整數部分
+1 : 小數點
+4 : 取小數點第4位
訂閱:
文章 (Atom)