2016-11-04 36 views
1

我正在使用SSIS,並且我有一個腳本任務,如果今天的日期是月初,我想更改變量的值。如何在SSIS腳本任務中獲取月初的日期?

所以我想改變布爾變量startDate的值爲TRUE,如果它是任務運行的月份的開始,否則返回FALSE。

基本上我缺少這個SQL語句的SSIS腳本版本:

SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth 

這是到目前爲止我的腳本:

 public void Main() 
    { 
     if (DateTime.Today = ? ) 
     { 
      Dts.Variables["User::startDate"].Value = True; 
     } 
      Dts.Variables["User::startDate"].Value = False; 

     Dts.TaskResult = (int)ScriptResults.Success; 
    } 
} 

答:

public void Main() 
{ 

DateTime value = new DateTime(DateTime.Today.Year,DateTime.Today.Month,1); 

if (DateTime.Today == value) 
{ 
    Dts.Variables["User::startDate"].Value = bool.Parse("True"); 
} 
    Dts.Variables["User::startDate"].Value = bool.Parse("False"); 

Dts.TaskResult = (int)ScriptResults.Success; 
} 
} 

回答

1

只需使用:

public void Main() 
{ 

    DateTime value = new DateTime(DateTime.Today.Year,DateTime.Today.Month,1); 

    if (DateTime.Today == value) 
    { 
     Dts.Variables["User::startDate"].Value = bool.Parse("True"); 
    } 
     Dts.Variables["User::startDate"].Value = bool.Parse("False"); 

    Dts.TaskResult = (int)ScriptResults.Success; 
} 
} 
+0

謝謝您的回覆。我得到一個錯誤,該變量的數據類型是布爾值,但是該值是作爲字符串傳遞的。刪除引號並沒有解決這個問題。 –

+0

嘗試將它傳遞爲0或1 – Hadi

+0

請記住,變量名稱區分大小寫 – Hadi