如何从 Mathematica 中的 SQLDateTime 对象中提取日期

发布于 2024-08-25 19:57:04 字数 441 浏览 4 评论 0原文

我正在尝试使用 DateListPlot 绘制时间序列图。我想向它提供从 SQL 数据库获取的时间序列。当我检索时间序列时,列表由 DateListPlot 无法理解的 SQLDateTime 条目组成。

In[24]:= t=SQLExecute[conn, "选择时间戳,按时间戳 asc 从时间序列中排序值"]

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

不起作用: In[25]:= DateListPlot[t]

DateListPlot 需要日期元组并且不理解 SQLDateTime。我能做些什么?

I am trying to do a plot of a time series with DateListPlot. I want to feed it a time series I obtain from an SQL database. When I retrieve the time series the list is composed of SQLDateTime entries that DateListPlot doesn't understand.

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}}

Doesn't work:
In[25]:= DateListPlot[t]

DateListPlot requires a Date tuple and doesn't understand SQLDateTime. What can I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一笑百媚生 2024-09-01 19:57:04

答案:

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[...]

The answer:

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

Mathematica thinks of everything very similarly internally. What you see as {1, 2, 3} is actually List[1,2,3]. The Part function (denoted by [[...]]) works just as well on any function, not just List.

The quick and dirty way to apply this in your case:

{#[[1,1]],#[[2]]}& /@ SQLExecute[...]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文