Frage

Ich versuche, eine Handlung einer Zeitreihe mit DateListPlot zu tun. Ich will ihm eine Zeitreihe ich aus einer SQL-Datenbank erhalten füttern. Wenn ich die Zeitreihe der Liste abrufen besteht aus SQLDateTime Einträgen dass DateListPlot nicht versteht.

In[24]:= t=SQLExecute[conn, "select timestamp,value from timeseries order by timestamp asc"]

Out[24]={{SQLDateTime[{2010,1,1}],12.3},{SQLDateTime[{2010,1,2}],12.51}}

funktioniert nicht: In[25]:= DateListPlot[t]

DateListPlot erfordert ein Date Tupel und versteht nicht, SqlDateTime. Was kann ich tun?

War es hilfreich?

Lösung

Die Antwort:

In[1]:= SQLDateTime[{2001, 5, 7}][[1]]
Out[1]:= {2001,5,7}

denkt Mathematica sehr von allem ähnlich intern. Was Sie als {1, 2, 3} sehen, ist tatsächlich List[1,2,3]. Die Part-Funktion (durch [[...]] bezeichnet) funktioniert genauso gut auf jede Funktion, nicht nur List.

Die schnelle und schmutzige Art und Weise dies in Ihrem Fall anwenden:

{#[[1,1]],#[[2]]}& /@ SQLExecute[...]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top