1
我想在UTC Azure SQL中的列中存儲UTC時間,以便我可以本地化我的移動應用程序的用戶的日期時間,而不管他們的時區。我在本地桌面上使用SQL Server 2014來開發我打算遷移到Azure SQL的數據庫。如何在Azure SQL中記錄UTC時間?
現在我嘗試使用類型DATETIMEOFFSET(7)我的專欄,但是當我插入日期,我看到這樣的價值觀在管理工作室(用我自己的本地偏差值)
2016-03 -13 18:00:00.0000000 -04:00
這是一個有點混亂,因爲應該沒有偏移,UTC始終是參考點-00:00這是一個UTC值或沒有?或者是SQL Management Studio將它們轉換爲顯示到我的本地時區?
此外,我的C#代碼提供的值作爲UTC或作爲偏移值?
使用的參數傳遞到我的存儲過程我的C#代碼如下所示
string dtFormat = "yyMMdd HHmm";
DateTimeOffset dtOut;
bool result = DateTimeOffset.TryParseExact(CurrentUTC.date + " " + CurrentUTC.time, dtFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dtOut);
command.Parameters.Add("@datetime", SqlDbType.DateTimeOffset).Value = dtOut;
不,DateTimeOffset不是UTC,而是它相對於它。當您想要及時錄製時,它通常是最好的數據類型。 – Crowcoder
@Crowcoder也許我可以將它存儲爲一個字符串,我知道它將始終是UTC,然後將它解析爲客戶端應用程序上的本地時間? – erotavlas
[給這個閱讀](http://blog.nodatime.org/2011/08/what-wrong-with-datetime-anyway.html)。日期和時間很難。但我不認爲你需要使用字符串。 – Crowcoder