如何处理mathematica中的日期范围?

时间:2016-06-07 19:41:26

标签: date csv wolfram-mathematica date-range google-trends

在谷歌趋势中,有可能将数据导出为CSV。获得的CSV具有以下结构:

DECLARE @Now AS DATE = GETDATE()
;WITH LastTwelveMonth AS (
      SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@Now)-1), @Now),101) AS Date_Value
      UNION ALL
      SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(MONTH, -1, Date_Value))-1), @Now),101) AS Date_Value
      FROM LastTwelveMonth
), ValuesForMonth AS (
      SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(lastupdatetimestamp)-1), lastupdatetimestamp),101) AS DateForData, SUM(DataToCount) OVER (PARTITION BY MONTH(lastupdatetimestamp), YEAR(lastupdatetimestamp)) AS DataCounted
      FROM FILES
)
SELECT ISNULL(Files.DataCounted, 0), LastTwelveMonth.Date_Value
FROM LastTwelveMonth
LEFT JOIN ValuesForMonth ON ValuesForMonth.DateForData = LastTwelveMonth.Date_Value

我知道有Week,subject 1, subject 2 2004-01-04 - 2004-01-10,13,6 2004-01-11 - 2004-01-17,9,9 2004-01-18 - 2004-01-24,11,4 ,但它只包含一个日期。我想在时域中获得主题1和2的阶梯图,并计算它们在两个给定日期之间的范围内的相关性。

我的问题是:数据结构如何用于表示时间范围?

1 个答案:

答案 0 :(得分:1)

谷歌趋势称时间变量“周”需要

  

StringTake [“2004-01-04 - 2004-01-10”,10]

获取范围的第一天,然后使用

  

DateList [{“2004-01-04”,{“年”,“月”,“日”}}]

创建日期列表和

  

DateString [{2004,1,4,0​​,0,0},{“Week”}]

表示一年中的日历周的时间。所以,功能

  

RangeToWeek [timerangestring_]:= DateString [DateList [{       StringTake [timerangestring,10],       {“年”,“月”,“日”}}],{“周”}]

列出了01列表中的第一个日期,因为从04.01.2004到10.01.2004的时间跨度对应于该年的第一个callendar周。