我試圖將當前日期的datetimeticks
的全部值存儲爲bigint
SQL數據類型作爲會話ID。但無法成功轉換數據類型。如何使用Datetime.Ticks作爲會話ID存儲BIGINT數據類型C#
我的目標是獲得當前Datetime.Ticks
在C#中,並將其保存爲SessionId
在SQL Server(2008版R2)
在SQL Server中,我申報的SessionID爲bigint
如下:
[Session_Id] [bigint] NOT NULL
在C#(WinForm的),我目前使用這個(做工精細):
long sessionId;
sessionId = Convert.ToInt64((long)BigInteger.Divide(DateTime.Now.Ticks,(BigInteger)5445654850112.1245));
我試圖在不截斷BigInteger中的值的情況下使用它,但會引發錯誤。
BigInteger sessionId = DateTime.Now.Ticks;
快照的我是說我用上面的代碼錯誤是:
我也試圖轉換爲下面的Int64但同樣的錯誤仍然存在。
BigInteger sessionId = Convert.ToInt64(DateTime.Now.Ticks);
作爲每MSDN
源,在SQL Server的BIGINT大小爲8字節
-2^63(-9,223,372,036,854,775,808)至2^63-1(9,223,372,036,854,775,807)
And BigInteger in C#(System.Numerics)沒有上限或下限
請提供可供選擇的建議/修復這個錯誤是我的目標是存儲完整datetimeticks
作爲SessionId
爲什麼在SQL'BIGINT'等於'long' /'System.Int64'時使用'System.Numerics.BigInteger'? – yaakov
使用.Net'BigInteger'是不必要的。你可以簡單地保存「長」。 – pijemcolu