在Google Spreadsheets中遇到日期和时间问题

时间:2012-07-22 08:32:49

标签: google-docs google-sheets

我在Google Spreadsheets中遇到了一些日期和时间问题。好的,我有以下几点:

电子表格1有许多工作表,其中一个称为会话。在该表上有许多列显示有关各个培训课程的各种数据。

然后我有第二个电子表格发布到用户可以看到的Google网站。它只有一个工作表,由查询+ importrange填充,以从第一个电子表格的“会话”选项卡中获取信息。我这样做的原因是我不希望用户能够在第一个电子表格中看到所有不同的表格,也不希望他们看到那里的所有不同列。

还有一个原因......我希望查询过滤会话以仅显示将来发生的会话,而不是已经过去的会话。

我在第二张表中提取的数据是:

= query(importrange(“IDofMainSpreadsheet”,“Sessions!A:I”);“选择Col1,Col2,Col3,Col6”)

现在工作正常。我要添加的内容如下:

= query(importrange(“IDofMainSpreadsheer”,“Sessions!A:I”);“选择Col1,Col2,Col3,Col6,其中Col2> = Now()”)

我尝试了许多不同的解决方案,但似乎找不到有效的解决方案。

任何帮助都很受欢迎。 问候, 麦克

好的....已经取得了一些进展。它不漂亮,但如果我添加另一张表并创建一个包含以下内容的单元格:

= YEAR(now())& “ - ”& DEC2OCT(MONTH(now()),2)& “ - ”& DAY(now())&“”& HOUR(now())&“:”& MINUTE(now())&“:”& SECOND(现在())

然后我可以在查询中使用它:

= query(importrange(“IDofSpreadsheet”,“Sessions!A:I”);“选择Col1,Col2,Col3,Col6,其中Col2> = datetime'”& Sheet3!B3&“'”)

如果有人可以帮助我在一行中做到这一点,那将会很棒。已按照以下建议尝试了toDate(Now())选项,但这不会返回上述任何结果。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

在QUERY select子句中,now()将生成一个日期时间,我认为您将与日期进行比较。尝试:

=QUERY(ImportRange("IDofMainSpreadsheer","Sessions!A:I");"select Col1,Col2,Col3,Col6 where Col2 >= toDate(now())")

https://developers.google.com/chart/interactive/docs/querylanguage#scalar_functions

修改

您的变通方法工作的事实表明您实际上在第2列中有日期时间。下面我建议您的原始解决方案可能无法正常工作,但首先是您的变通方法的更紧凑版本:

=QUERY(ImportRange("IDofSpreadsheet","Sessions!A:I");"select Col1,Col2,Col3,Col6 where Col2 >= datetime '"&TEXT(NOW();"yyyy-MM-dd HH:mm:ss")&"'")

我唯一能想到的是QUERY select子句中的now()和电子表格公式中调用的NOW()似乎在不同的时区中运行,并且可能不一定返回相同的结果。例如,现在在我的东澳大利亚时区,前者在25/07/2012(可能的山景时间)返回日期时间,后者(正确)在26/07/2012返回日期时间。因此,在您的解决方法中使用电子表格NOW()可能是一种很好的做法(在此阶段)。

答案 1 :(得分:0)

或者只是需要更改Google电子表格中的时区。