簡體   English   中英

保存到數據庫時日期值被更改

[英]Date value is getting changed when saving to database

我使用實體框架核心將兩個日期時間變量保存到SQL數據庫(托管在Azure中)表中。 保存后以某種方式查詢數據庫時,我注意到datetime值已更改。 您可以在下面保存之前看到初始值。

固定值的代碼

保存后,在數據庫中顯示如下

SQL表值

我通讀了一些技術文檔,以查找可能對此產生影響的因素。 不過,我沒有發現任何有趣的東西。

您能幫我了解此數據更改的原因嗎? 我很確定沒有任何存儲過程或任何其他腳本可以更改這些日期。

// step 3: update tblStudent
var tblStudentEntityToUpdate = await _applicationDbContext.Value.StudentApplications.FirstOrDefaultAsync(x => x.StudentID == vm.StudentID);
vm.GuardianID = guardianId;

_applicationDbContext.Value.Entry(tblStudentEntityToUpdate).CurrentValues.SetValues(vm);
await _applicationDbContext.Value.SaveChangesAsync();

正如zaitsman在評論中提到的那樣,原因是您正在使用本地格式的DateTime。 無論選擇哪個數據中心位置,您的SQL Azure服務器都設置為UTC時區。 AFAIK,此設置無法更改。

始終建議將DateTimes存儲為UTC,因為這樣可以避免您在本地時間寫入然后在不同時區假設下讀取它的任何問題。

據我了解,您的應用程序應該運行良好,因為您的應用程序將讀取這些值並將其正確存儲為UTC DateTimes,然后,如果您想在特定時區顯示此信息,則可以調用DateTime.ToLocalTime。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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