[英]error while updating date datatype via C# and SQL
(對不起,英語不好)
嘿,我在嘗試更新Date數據類型時遇到問題。
那是我的SQL查詢
UPDATE Employees
SET BirthDateEmp = '04/11/2012'
WHERE (IdEmp = 1)
所以我將day = 4,month = 11和2012年設置為
但是當我檢查我的桌子時,它會在日期和月份之間切換,所以現在的第11天是第4個月。
而且我如果嘗試將此日期設置為'13 / 10/2012'(day-13 month-10 year -2012)我遇到了錯誤,因為它試圖放置:day-10 month-13,並且沒有month 13所以我得到了錯誤
為什么會發生?
您的SQL Server似乎期望使用美國格式的日期(mm / dd / yyyy)。 您需要讓我們知道您正在使用什么數據庫和操作系統。
您的應用程序和數據庫上的本地化設置彼此不兼容。
您的應用程序中似乎有(並且想要)英國日期格式(DD / MM / YYYY),但是數據庫中有美國日期格式(MM / DD / YYYY)。
您可以將數據庫更改為以中性格式存儲日期,然后將應用程序更新為采用本地日期,然后將其轉換為中性格式,然后再存儲在數據庫中,並在顯示時從中轉換。
您還應該將日期(而不是字符串)存儲在日期(或日期時間)列中。
問題在於您使用的日期格式不明確,並且服務器上的區域性不是您所期望的。
理想情況下,您要使用類型化參數,並且永遠不要將日期作為字符串來處理。
如果必須使用字符串,我發現以下格式最一致地成功:yyyy-MM-dd
您可以通過代碼更改Date數據類型的格式並檢查查詢
UPDATE Employees
SET BirthDateEmp = '11/04/2012'
WHERE (IdEmp = 1)
這將更新您的表,因為SQL中日期數據類型的默認格式為(MM / dd / yyyy),因此請遵循此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.