2017-05-25 2 views
1

Je rencontre un problème avec un littéral de date ne renvoyant aucun résultat lorsque j'exécute une requête SOQL. La requête est la suivante:Source SalesForce ADO.NET dans SSDT 2013 Instruction SOQL utilisant des littéraux de date ne renvoyant pas de résultats

Select * From dbo.Case WHERE CreatedDate = YESTERDAY 

Avec la requête, je voudrais obtenir des données de cas du jour précédent. Je sais qu'il y a des données disponibles qui ont été créées la veille. Les résultats de la requête lorsque je la prévisualise, cependant, sont un ensemble vide sans message d'erreur. Une autre différence qui rend ce problème SOQL pas très strict est que j'essaie d'utiliser cette requête en tant que commande SQL sur une connexion ADO.NET à l'aide du pilote CData ADO.NET pour se connecter à une instance SalesForce.com . Mon but est de pouvoir créer des paquets SSDT qui me permettront de mettre en scène les données de SalesForce dans notre SQL Server pour y être traitées.

J'ai des problèmes similaires en utilisant le littéral de date LAST_N_DAYS. Je crois que je devrais utiliser SOQL pour interroger dans le champ de texte de commande SQL pour la connexion source ADO.NET, mais je ne suis pas sûr à 100% à ce sujet. Je sais avec certitude que je ne peux pas utiliser T-SQL car il ne reconnaît pas le GETDATE().

Toute directive sur la façon de tirer les dossiers de Case pour la journée précédente ou lorsque la requête que j'utilise pourrait être erronée serait grandement appréciée.

Répondre

1

J'ai trouvé une réponse. La commande SQL suivante extraire les données de la veille:

Select * From dbo.Case Where CreatedDate = 'YESTERDAY' 

Les guillemets simples évaluent la date d'hier littéral comme prévu.

De même, l'instruction SQL suivante obtiendra les 30 derniers jours de données.

Select * From dbo.Case Where CreatedDate = 'LAST_N_DAYS:30' 

Merci à tous ceux qui ont fait des recherches et tenté la question! :)