簡體   English   中英

通過C#和SQL更新日期數據類型時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM