5
我正在嘗試使用DateListPlot
做一個時間序列圖。我想給它提供一個從SQL數據庫中獲得的時間序列。當我檢索時間序列時,該列表由SQLDateTime
條目組成,DateListPlot
不理解。如何在Mathematica中從SQLDateTime對象提取日期
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}}
不起作用: In[25]:= DateListPlot[t]
DateListPlot
需要一個日期數組和不理解SQLDATETIME。我能做什麼?
這可能是更有效和更清晰的做類似的東西'SQLExecute [...] /。 SQLDateTime [l _]:> l'或'SQLExecute [...] /。 SQLDateTime - > Identity',當你有多個SQLDateTime對象時。另外,'DateListPlot'理解整型Unix樣式的時間戳,因此''AbsoluteTime [{timespec ...}]'給你一個時間戳,所以你可以用'AbsoluteTime'替換'SQLDateTime'來轉換爲那些。 – 2010-03-18 16:46:47
這些都是很好的答案。感謝Jefromi和Michael! – andrewz 2010-03-18 16:59:44
是的,我確實叫它快速和骯髒。使用規則肯定更清晰,代碼量更高效。不過,我不確定規則是否總體上更快,因爲它必須搜索所有內容,而如果您知道數據的結構,則可以使用類似這樣的東西,除了地點之外不需要檢查任何東西你知道SQLDateTime發生。 – Cascabel 2010-03-18 17:00:23