2012-06-25 7 views
1

Je voudrais avoir des nouvelles de financement de Yahoo pour les 3 derniers jours, quelque chose comme çaComment interroger YQL tableau rss par pubDate

select * from rss where url='http://finance.yahoo.com.news/rss' and pubDate >= '2012-06-23' 

mais cette partie « pubDate> = « 2012-06-23 » » est ignoré. J'ai toujours les mêmes résultats avec ou sans cette clause. Quelle est la bonne syntaxe pour le faire fonctionner?

Répondre

0

Irina,
vous utilisez un « plus grand que » opérateur sur une chaîne,
pour filtrer par pubDate vous devez utiliser quelque chose comme,

and pubDate >= date_trunc('month',current_date) 
order by pubdate desc; 
+1

Cela ne fonctionne pas pour moi. Toujours obtenir une erreur: "Seuls les littéraux pris en charge en tant que RHS, trouvés: [email protected] attend littéral" –

+0

L'URL est-elle correcte? Essayer l'URL dans le navigateur donne un 404. Je suspecte son 'http://finance.yahoo.com/news/rss –

0

La requête droite serait

select * from rss where url='http://finance.yahoo.com/news/rss' and item.pubDate>='2012-06-26' 

Notez le item.pubDate. La raison de l'article. est parce que dans la structure xml, pubDate est un enfant de item. Malheureusement, cela ne fonctionnera pas pour votre cas d'utilisation (tri par heure). C'est parce que le pubDate retourné n'est pas dans l'horodatage unix. Désolé je ne sais pas ce qui doit être fait pour que vous obteniez les bons résultats mais au moins je pourrais vous donner la bonne question :)

+0

C'est pourquoi une fonction comme date_trunc est votre meilleur ami ici. –

+0

Merci pour votre réponse, je l'essaie dans la console YQL comme ceci: –

+0

Merci pour votre réponse, je l'essaie dans la console YQL comme ceci: select * from rss où url = 'http: //finance.yahoo.com/news/ rss 'et item.pubDate> =' 2012-06-26 '| sort (field = "pubDate", descending = "true") et il retourne tout d'eux. Je comprends que c'est parce que pubDate est une chaîne mais n'a pas pu trouver comment la convertir en type datetime dans la console YQL. La fonction date_trunc() ne fonctionne pas dans cette requête aussi, j'obtiens une erreur listée ci-dessous à propos de "expecting literal". –