2012-07-22 33 views
0

我在Google Spreadsheets中遇到了一些日期和時間問題。好吧,我有以下內容:在Google Spreadsheets中遇到日期和時間問題

電子表格1有許多表單中的一個稱爲會話。在該表中有許多列顯示關於個別培訓課程的各種數據。

然後我有第二個電子表格發佈到谷歌網站,用戶可以看到。它只有一個由查詢+導入區域填充的工作表,以便從第一個電子表格的「會話」選項卡中獲取信息。我這樣做的原因是我不希望用戶能夠在第一個電子表格中看到所有不同的表單,也不希望他們看到那裏的所有不同列。

還有一個原因......我希望查詢過濾會話以僅顯示將來發生的會話,而不是已經過去的會話。

查詢我在第二片材拉數據是:

=查詢(IMPORTRANGE( 「IDofMainSpreadsheet」,:); 「選擇Col1中,Col2中,COL3,COL6」, 「會話A I」! )

現在工作正常。我想添加的內容類似於:

= query(importrange(「IDofMainSpreadsheer」,「Sessions!A:I」);「select Col1,Col2,Col3,Col6 where Col2> = Now()」)

我已經嘗試了許多不同的解決方案,但似乎找不到一個可行的解決方案。

大大收到的任何幫助。 Regards, Mike

好的....已經取得了一些進展。它不漂亮,但如果添加了另一張紙,並創建一個單元以下:

= YEAR(NOW())& 「 - 」 & DEC2OCT(MONTH(NOW()),2)& 「 - 」 & DAY (NOW())& 「」 & HOUR(NOW())& 「:」 & MINUTE(NOW())& 「:」 & SECOND(NOW())

然後,我可以在查詢中使用這樣的:

= query(importrange(「IDofSpreadsheet」,「Sessions!A:I」);「select Col1,Col2,Col3,Col 6其中Col2> = datetime'「& Sheet3!B3 &」'「)

如果有人能夠幫助我在一行內完成此操作,那將會很棒。已經嘗試瞭如下建議的toDate(Now())選項,但是這不會在上述情況下返回任何結果。

有什麼想法?

+0

這不是一個真正的谷歌應用腳​​本問題,除非你想創建一個新的自定義函數或使用腳本來做你想做的事情嗎?你不覺得嗎? – 2012-07-22 10:52:24

+0

同意,有更改標籤對不起 – MikeE 2012-07-25 22:18:40

回答

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()似乎在不同的時區中運行,並且可能不一定會返回相同的結果。例如,現在在我的東部澳大利亞時區,前者返回2012年7月25日的日期時間(可能爲Mountain View時間),後者(正確)返回26/07/2012的日期時間。因此,在您的解決方法中使用電子表格NOW()可能是一種很好的做法(在此階段)。

+0

嗨,謝謝你的回覆。這不適合我,它沒有返回任何數據。已經使用我已經創建的解決方法更新了我的原始帖子,但它並不漂亮。如果我可以在qury命令中完成所有這些,那將是非常棒的 – MikeE 2012-07-25 22:16:12

+0

感謝您的幫助。你的版本很整潔。 – MikeE 2012-08-06 11:49:25

0

或者只是需要更改您的谷歌電子表格上的時區。