在 C# Console 內把資料秀出來檢查,資料都是唯一的
故意把 Table 內的 Primary Key 拿掉,資料塞進來後發現,秒都不見啦,這就是違反 Primary Key 的主因啦
故意把欄位資料型態從 smalldatetime 改為 char(20) 發現秒是存在的
下 T-SQL 語法把 char 轉為 smalldatetime,秒又歸零啦,到此很確定是資料型態 smlldatetime 的問題啦
查閱 MSDN smalldatetime 說明,才發現 smalldatetime 的精確度只到 "分" 而以,把欄位資料型態轉為 datetime,精確度到 "3.33毫秒",再把資料篩進來,資料就正確啦
smalldatetime 和 datetime 整理
| 資料型態 | 範圍 | 精確度 |
|---|---|---|
| datetime | 1753年1月1日到9999年12月31日 | 3.33 毫秒 |
| smalldatetime | 1900年1月1日到2079年6月6日 | 分 |
第一次用 C#,一直以為是 ADO.NET 的問題導致秒被裁掉,後來發現問題點還是在較熟悉的 SQL Server 身上,>.< ~~
- 參考資料
- MSDN:smlldatetime、datetime
![[SQL] smalldatetime 和 datetime-1](https://farm3.staticflickr.com/2871/13457917203_df133e4608_o.jpg)
![[SQL] smalldatetime 和 datetime-2](https://farm8.staticflickr.com/7430/13458160614_54ea9f599c_o.jpg)
![[SQL] smalldatetime 和 datetime-3](https://farm3.staticflickr.com/2834/13458160394_24497268e5_o.jpg)
![[SQL] smalldatetime 和 datetime-4](https://farm8.staticflickr.com/7222/13457797675_9e9ea3d502_o.jpg)
![[SQL] smalldatetime 和 datetime-4-5](https://farm8.staticflickr.com/7049/13457797425_d3e073827d_o.jpg)
沒有留言:
張貼留言