2012-12-20 96 views
0

var dataInicial ='2012-11-01 00:00:00';Apps腳本中的日期時間

var dataFinal ='2012-11-02 22:00:00';

變種strOrders = stmt.executeQuery( 'SELECT orders_id,date_purchased FROM zen_orders WHERE orders_status IN(3,48,49,53)和last_modified BETWEEN' + dataInicial + '和' + dataFinal);

您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行(linha 12)'00:00:00 AND 2012-11-02 22:00:00'附近使用正確的語法。

此查詢適用於PHP :(

+1

請問如果使用日期明確,而不是使用變量的工作?例如'last_modified BETWEEN'2012-11-01 00:00:00'AND'2012-11-02 22:00:00'' – bonCodigo

+0

不,同樣的錯誤... –

+0

看起來像你的RDMS(哪一個?)沒有就像日期和時間之間的空間一樣。嘗試用引號包裝這些部分。 –

回答

0

例如對於MS ACCESS SQL日期有#來包裝它們,包含字面日期值時使用的正確字符是英鎊字符(#)Reference MS Access。在Google腳本中可能需要使用某些字符/前綴來用於SQL,因此,如果可以查看關於使用日期/參數化日期/爲Google腳本構建sql字符串的文章,那麼這是非常好的。要縮小問題的範圍試試這個:

var strOrders = stmt.executeQuery('SELECT orders_id, date_purchased 
FROM zen_orders WHERE orders_status IN (3, 48, 49, 53) 
AND last_modified BETWEEN last_modified - Interval 7 day AND Now()); 

如果這是你的腳本運行良好,那麼可以肯定這件事情跟你解析日期的方式。格式。

假設你正在使用的Google BigQuery,只是知道的BigQuery中目前沒有一個DateDateTime數據類型。您應該使用日期格式POSIX (UNIX epoch)將整個日期戳存儲在BigQuery中,並使用FORMAT_UTC_USEC函數將它們轉換爲人類可讀的時間。

另一種方法是將日期戳存儲爲YYYY-MM-DD HH:MM:SS.uuuuuu格式的字符串,然後使用PARSE_UTC_USEC()函數在您的有序查詢中對其進行轉換。

相關問題