2

この SQL ステートメントを VB で変換しようとしていますが、失敗しています。誰でも助けることができますか?

declare @factor as int
declare @Date as varchar(30)
set @factor = (Cast(Convert(datetime, @Date) as int) - 33975)- 
    (28 * ((Cast(Convert(datetime, @Date) as int) - 33975)/28))
4

1 に答える 1

2

最初に、文字列値をDateTime. 次に、番号を数えます。1900-01-01 からその日付までの日数。

Dim str = "2005-11-14"
Dim dateValue = DateTime.ParseExact(str, "yyyy-MM-dd", 
                  CultureInfo.InvariantCulture, DateTimeStyles.None)
Dim baseDate = New DateTime(1900, 1, 1)
Dim intValue = (dateValue - baseDate).TotalDays

数学演算を適用することができます

Dim factor = intValue - 33975 - (28 * (intValue - 33975) / 28)
于 2012-11-01T22:17:29.763 に答える