2012-11-01 70 views
2

我試圖在VB中轉換此SQL語句,但一直不成功。誰能幫忙?將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)) 
+2

什麼是你想達到什麼目的? – pordi

+3

您是否要求我們將此sql語句轉換爲VB.NET中的類似語句(舍入爲int)?或者你正在尋找['Math.Truncate'](http://msdn.microsoft.com/en-us/library/c2eabd70.aspx)方法? (_「指定的雙精度浮點數的整數部分」_) –

+0

在vb.net中尋找類似的語句...這是一個在SQL中用存儲過程編寫的公式,但我不想通過Visual Studio 2010 aspx.vb頁面調用該過程。所以,我需要在vb中有相同的信息工作,但不確定如何去做。 – user1792690

回答

2

首先,您需要將字符串值解析爲DateTime。然後數一下nr。從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)