Как извлечь Дату из объекта SQLDateTime в Mathematica

Я пытаюсь сделать график временного ряда с DateListPlot. Я хочу подать его временной ряд, который я получаю из базы данных SQL. Когда я получаю временной ряд, список состоит из SQLDateTime записи это DateListPlot не понимает.

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. Что я могу сделать?

5
задан andrewz 18 March 2010 в 15:52
поделиться

1 ответ

Ответ:

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

Mathematica думает обо всем очень похоже. То, что вы видите как {1, 2, 3}, на самом деле является List[1,2,3]. Функция Part (обозначаемая [[...]]) работает так же хорошо для любой функции, а не только для List.

Быстрый и грязный способ применить это в вашем случае:

{#[[1,1]],#[[2]]}& /@ SQLExecute[...]
7
ответ дан 14 December 2019 в 08:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: