0

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

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

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

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行 (linha 12) 的“00:00:00 AND 2012-11-02 22:00:00”附近使用正确的语法

此查询适用于 PHP :(

4

1 回答 1

0

例如,MS ACCESS SQL 日期必须#包装它们。包含文字日期值时使用的正确字符是井号 (#)。参考 MS Access。当你进行日期计算时,这真的很重要。也许您可能需要在 Google Script 中为 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 目前没有DateorDateTime数据类型。您应该在 BigQuery 中将日期戳存储为日期格式的整数,并可以使用该函数POSIX (UNIX epoch)将它们转换为人类可读的时间。FORMAT_UTC_USEC

另一种方法是将日期戳存储为格式中的字符串,使用该函数YYYY-MM-DD HH:MM:SS.uuuuuu在您的有序查询中转换它们。PARSE_UTC_USEC()

于 2012-12-21T09:19:50.677 回答