2011-11-04 105 views
1

什麼是Oracle to_char(date,「IW」)函數的.net等效項(返回星期編號)。我嘗試過使用CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(日期,CalendarWeekRule.FirstFullWeek,DayOfWeek.Monday),但有些結果不匹配。不知道我應該爲CalendarWeekRule和DayOfWeek枚舉傳遞什麼值。.net中的Oracle函數to_char(date,「IW」)

回答

1

它看起來像Oracle使用ISO-8601定義的「週年」,而不是相當於,它支持.NET開箱即用。然而,this blog post給出了一些你可以用來修飾它的替代代碼。另外,我想知道我的Noda Time項目是否給你正確的結果(你總是可以使用它而不是DaetTime :) - 如果你可以給一些示例輸入,Oracle輸出和.NET輸出(尤其是在不同的地方)對我有用。

+0

謝謝喬恩。 我的數據集包含2191天(2006年至2011年底這段時間)。 我在.Net中使用了Oracle中的函數TO_CHAR(date,'IW')和.Net中的 CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(from,CalendarWeekRule.FirstFullWeek,DayOfWeek.Monday)。 以下是不匹配的行的鏈接:http://notepad.cc/share/U6ZetqDI6N。 這些包括例如2008年1月8日,甲骨文輸出值爲2而.net,與給定的參數,輸出1. – Fikre

+0

謝謝 - 我會添加適當的單元測試野田時間:) –

+1

@Fikre:謝謝非常重要 - 我已經驗證了Noda Time中這些日期的年底/年初,並且它們都與Oracle相匹配:http://code.google.com/p/noda-time/source/diff?spec = svn6f2df473f00c8b70be1239251c5e6a9a1ab8a07b&R = 6f2df473f00c8b70be1239251c5e6a9a1ab8a07b&格式=側&路徑=/SRC/NodaTime.Test/LocalDateTest.BasicProperties.cs –