2015年5月30日 星期六

mssql 相加,相減,星期

參考:DATEADD (Transact-SQL)
參考:DATEDIFF (Transact-SQL)
DATENAME (Transact-SQL)
--
select dateadd(d,5,'20150501') --相加
select datediff(d,'20150501','20150510') --相減
select DATENAME(DW,getdate()) --星期?

2015年5月23日 星期六

mssql varchar(max) 終極2GB用法

參考來源:varchar(MAX)--SQL2005的增强特性
---
最近組合 T-SQL Query 字串
怎用都是被截斷
原來 varchar(max) -- 就是所有變數都得宣告為:  varchar(max)
這樣

declare @a  varchar(max)
declare @b  varchar(max) 
declare @c  varchar(max)  

set @c=@a+@b 

長度可使用到2GB , 不再被截斷 


2015年5月20日 星期三

mssql 2008 r2 express 解壓縮

到微軟下載的 mssql 2008 r2 express 是:SQLEXPRWT_x86_CHT.exe
若要解開這 .exe 可在dos 模式下加參數:
SQLEXPRWT_x86_CHT.exe /x   --->即可解開


--
還能利用其他解壓縮工具,一樣可以解開 !


另外: *.msi 檔的解開方法

msiexec.exe /x C:\setup.msi

2015年5月18日 星期一

股利計算方法


假設一張股票現價:18.4
1.現金股利: 0.25
2.盈餘配股: 1.0
3.公積配股: 0.37

現金股利指的就是公司發放的是現金,
股票股利則指公司發放的是股票。
當公司發放現金股利 時,叫做除息;
發放股票股利時,叫做除權。

而盈餘配股與公積配股則是以股利的來源區分
分派股利來源屬於年度盈餘者稱盈餘 配股
分派股利來源屬於歷年累積之公積者稱公積配股

以一張股票來計算

「現金股利」=0.25 x 1000股= 250元

「股票股利」=盈餘配股 + 公積配股
=1.0 + 0.37= 1.37

股 票股利的部份就比較複雜
這需要先計算除權後的股價,計算方式如下:

除權後新股價 = (原股價 - 現金股利) / [1+(股利/股票面額)]

這邊要注意, 台股的股票面額通常是每股10元
而不是他在股市中的市價
所以每張股票之股票股 利分配的股數為=>
(股利/面額)*1000 = (1.37/10)*1000 = 137股

把所有的數字帶進去以後
除 權後新股價=(18.4 - 0.25) / [1+(1.37/10)] = 18.15/1.137 =15.963
新股價為 15.963

假 設明天為除權日
開盤時的股價將會是15.963
(基本上開盤價會是15.95, 因為沒有15.962的檔位, 為求解釋清楚,
此 處暫忽略此問題)
你的股票股利為 15.963*137股 = 2186.93
也就是說股票股利相當於台幣 2186.93元的價值

所 以, 你的股利總和市值約為 現金股利+股票股利= 2436.93

不過, 原本那張股票的股價由 18.4 變為 15.963 了

基 本上, 手中所持有的股票,
除權前跟除權後(含股利)的價值是一樣的

除權前, 一張18.4元的股票市值18400
除 權後, 股票市值 15963, 股利總和 2436.93, 合計為 18399.93
(些微差距為計算過程中捨去小數點後三位的結果)

2015年5月15日 星期五

程序或函數 'proc_xxx' 必須有參數 '@xxxid',但是並未提供。



-----------
 主要還是在 cmd.CommandType = CommandType.StoredProcedure
當採用MSSQL 的 StoredProcedure , 就必須加定義:
cmd.CommandType = CommandType.StoredProcedure

若是在程式內的  command stored procedure 寫法,就不可定義:
cmd.CommandType = CommandType.StoredProcedure

兩者相反,必搞倒自己= . =!!