2015-10-29 2 views
1

Je veux une expression SSIS qui me donnera la date du dimanche de la semaine dernière.Dernier dimanche de la semaine précédente dans SSIS

correspondant requête de serveur SQL ressemble:

select convert (date, DATEADD (semaine, DATEDIFF (semaine, 6, convertir (date, @ report_dt)), -1))

Je veux que le même résultat dans l'expression SSIS.

Merci

Répondre

0

En supposant que votre date de tenue dans une variable appelée report_dt, cela fonctionne pour moi:

(DT_DATE)LEFT((DT_WSTR, 30)DATEADD("Day", -1 * (DATEPART("Weekday", @[User::report_dt]) + 7), @[User::report_dt]), 10) 

Cependant pas sûr si cela est la région sûre - mais il fonctionne au Royaume-Uni.

+0

Salut, J'ai été capable de voir la fonction DROITE dans le dossier Fonctions de chaînes dans SSIS, mais il n'a pas été capable de reconnaître la fonction LEFT. Est-ce que je manque quelque chose? –

+0

J'utilise la dernière version de la version, donc c'est peut-être une nouvelle fonctionnalité, pourquoi ne pas utiliser SUBSTRING à la place? –

0

Cela vous donnera le dimanche de la semaine dernière en utilisant la report_dt variable:

(DT_DBDATE)DATEPART("dw",@[User::report_dt]) == (DT_DBDATE)1 ? @[User::report_dt] : DATEADD("day",-(DATEPART("dw",@[User::report_dt]) - 1),@[User::report_dt]) 

C'est casté comme DT_DBTIME alors que la date est retournée.