# C# 筆記 ## datetime 值域的差異 - .NET C# 與 SQL Server - .NET C# 1. System.Data.SqlTypes.SqlDateTime - MinValue.Value:1753-01-01 00:00:00.000 - MaxValue.Value:9999-12-31 23:59:59.997(注意 997) 1. System.DateTime - MinValue:0001-01-01 00:00:00.0000000 - MaxValue:9999-12-31 23:59:59.9999999 - SQL Server 1. smalldatetime - 最小值:1753-01-01 00:00:00.000 - 最大值:2079-06-06 23:59:00 - 註: SQL Server 提示為 2079-06-06 23:59:***59***,其提示是錯誤的。 1. datetime - 最小值:1753-01-01 00:00:00.000 - 最大值:9999-12-31 23:59:59.997(注意 997) 1. datetime2 - 最小值:0001-01-01 00:00:00.0000000 - 最大值:9999-12-31 23:59:59.9999999 > 參考資料: > 1. [SQL Server 2005、2008 的 datetime 值范围](http://www.cftea.com/c/2014/07/6247.asp) ## C# Guid Guid.NewGuid().ToString("N") 結果為: 7ef42579d7214d9e91c44feccd3e576b Guid.NewGuid().ToString("D") 結果為: ddfa0936-1a19-4b64-a0ca-6860b78f260e Guid.NewGuid().ToString("B") 結果為: {48c908ec-89f0-4d14-a3ee-c210d44d87a3} Guid.NewGuid().ToString("P") 結果為: (56de0184-2ced-42a7-ae1e-2c04ddd8159f) string s = Guid.NewGuid().ToString("N"); byte[] bt = System.Text.UnicodeEncoding.Unicode.GetBytes(s);//產生64 byte string c = System.Text.UnicodeEncoding.Unicode.GetString(bt); byte[] be = Guid.NewGuid().ToByteArray();//產生 16 byte 若只要數字就這樣作: view plainprint? Guid myGuid = Guid.NewGuid(); byte[] bArr = myGuid.ToByteArray(); int autonum = Math.Abs(BitConverter.ToInt32(bArr,0)); 若只要數字的話, 不利用 Guid 使用 Random 更快, 可以這麼做: string.Format("{0:00000}", (new Random()).Next(100000)) 產生5位數字亂數, 左側不滿位數補0的字串產生方式!! > 參考資料: > 1. [C# GUID產生亂數字串 record](https://createps.pixnet.net/blog/post/32803311)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up