2017年7月13日 星期四

取得MSSQL伺服器的相關資訊,如IP,PORT

SELECT 
    CONNECTIONPROPERTY('net_transport') AS net_transport,
    CONNECTIONPROPERTY('protocol_type') AS protocol_type,
    CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
    CONNECTIONPROPERTY('local_net_address') AS local_net_address,
    CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
    CONNECTIONPROPERTY('client_net_address') AS client_net_address

image

2017年7月12日 星期三

REAL/FLOAT欄位,取到小數點第4位(無條件捨去)

參考了網路的做法,但有一些問題無法排除
網路的解法為:round(VcutMeter,4,1)
但原本1.52會變成1.159 如下圖:
image
經過反覆測試,改用以下方式:
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位