昨天在SSIS包装设置中的变量通过表达式的日期

时间:2014-11-08 18:44:03

标签: ssis msbi

我在SSIS包中设置了一个变量,我使用这个表达式:

DATEPART("yyyy", GETDATE())*10000 
        + DATEPART("month", GETDATE())*100  
        + DATEPART("day",GETDATE())

表达式会给我一个变量值,例如' yyyymmdd'。我的问题是我想要昨天约会。

例如2014年11月1日应该是20141031

5 个答案:

答案 0 :(得分:7)

您可以使用DATEADD功能 你的表达是:

DATEPART("yyyy", DATEADD( "day",-1, GETDATE()))*10000 + DATEPART("month",  DATEADD( "day",-1, GETDATE())) * 100 + DATEPART("day", DATEADD( "day",-1, GETDATE()))

答案 1 :(得分:3)

少了代码......

CONVERT(varchar(8), DATEADD(dd,-1,GETDATE()),112)

答案 2 :(得分:1)

这将给出昨天的日期

(DT_WSTR, 4) YEAR(DATEADD("day",-1,GETDATE())) +RIGHT("0" + (DT_WSTR, 2) DATEPART("MM", DATEADD("day", -1, GETDATE())),2) +RIGHT("0" + (DT_WSTR, 2) DATEPART("DD", DATEADD("day", -1, GETDATE())),2)

答案 3 :(得分:-1)

以下示例给出了昨天的日期和小时和分钟: 2015-09-06-14-40

$newSheet=$objPHPExcel->createSheet();            
$objPHPExcel->setActiveSheetIndex(1);
$newSheet->setTitle("CountriesList");

$objPHPExcel->setActiveSheetIndex(1)
->SetCellValue("A1", "UK")
->SetCellValue("A2", "USA")
->SetCellValue("A3", "CANADA")
->SetCellValue("A4", "INDIA")
->SetCellValue("A5", "POLAND")
->SetCellValue("A6", "ENGLAND");// Drop down data in sheet 1

$objPHPExcel->addNamedRange( 
new PHPExcel_NamedRange(
'countries', 
$objPHPExcel->setActiveSheetIndex(1), 
'A1:A6'
) 
);
$objPHPExcel->setActiveSheetIndex(0)->SetCellValue("A1", "UK");

$objPHPExcel->setActiveSheetIndex(0);// Drop down in sheet 0
$objValidation = $objPHPExcel->getSheet(0)->getCell('A1')->getDataValidation();
$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
$objValidation->setAllowBlank(false);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setShowDropDown(true);
$objValidation->setErrorTitle('Input error');
$objValidation->setError('Value is not in list.');
$objValidation->setFormula1("=countries");

答案 4 :(得分:-1)

(DT_WSTR, 4) YEAR(GETDATE()) +RIGHT("0" + (DT_WSTR, 2) MONTH(GETDATE()),2) +RIGHT("0" + (DT_WSTR, 2) DATEPART("DD", DATEADD("day", -1, GETDATE())),2)

以上也会在前一天给你约会。执行加号或减号的主要问题在表达式中给出截断错误。

RIGHT("0" + (DT_WSTR, 2) DATEPART("DD", DATEADD("day", -1, GETDATE())),2) 

不会破坏表达。