0

var dataInicial = '2012-11-01 00:00:00';

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

var strOrders = stmt.executeQuery('SELECTorders_id、date_purchased FROM zen_ordersWHERE orders_statusIN(3、48、49、53)AND last_modifiedBETWEEN' + dataInicial +'AND' + dataFinal);

SQL構文にエラーがあります。1行目の「00:00:00AND2012-11-0222:00:00」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください(linha 12)

このクエリはPHPで機能します:(

4

1 に答える 1

0

たとえば、MSACCESSSQLの日付は#それらをラップする必要があります。リテラルの日付値を含めるときに使用する正しい文字は、ポンド文字(#)です。参照MSAccess。あなたが日付計算をするとき、それは本当に重要です。おそらく、GoogleScript内のSQLに使用する必要がある特定の文字/プレフィックスがあります。したがって、日付の使用/パラメータ化された日付/GoogleScriptの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には現在DateまたはDateTimeデータ型がないことを知っておいてください。日付スタンプを日付形式の整数としてBigQueryに保存POSIX (UNIX epoch)し、関数を使用して人間が読める時間に変換できるようにする必要がありFORMAT_UTC_USECます。

別の方法は、日付スタンプを文字列として形式で保存し、関数YYYY-MM-DD HH:MM:SS.uuuuuuを使用して順序付けられたクエリで変換することです。PARSE_UTC_USEC()

于 2012-12-21T09:19:50.677 に答える