admin

在Google融合表中编写查询以比较时间

sql

我想从Google融合表中获取所有满足给定日期“时间”列>特定时间中条件的条目

https://www.googleapis.com/fusiontables/v2/query?sql=SELECT * FROM 1WjowbI77j1WFcn3IEtbwBymhVZh8jfmP_dg1epd9 WHERE Date = '2015-02-23' AND Time > '10:25:04'&key=AIzaSyCALoSz00ZY3zTL1D_xUTD9GMb3T1ocBdU

但这给了我所有的输入结果。

融合桌:

https://www.google.com/fusiontables/data?docid=1WjowbI77j1WFcn3IEtbwBymhVZh8jfmP_dg1epd9&key=AIzaSyCALoSz00ZY3zTL1D_xUTD9GMb3T1ocBdU#rows:id=1


阅读 167

收藏
2021-06-07

共1个答案

admin

假定Time列的类型为Date/Time,格式为 H:mm:ss AM/PM

在这种情况下,似乎 不* 支持对Date/Time列的过滤。 *

根据“行和查询SQL参考”文档:

在DATETIME进行过滤

在类型为的列上进行过滤时DATETIME,的<value>格式应为以下受支持的格式之一:

MMM dd, yy
MM/dd/yy
MM-dd-yy
MMM-dd-yy
yyyy.MM.dd
dd-MMM-yy
MMM/yy
MMM yy
dd/MMM/yy
yyyy

话虽如此,您可以考虑对返回的结果应用过滤,如以下JavaScript示例所示:

var key = 'AIzaSyCALoSz00ZY3zTL1D_xUTD9GMb3T1ocBdU'

var sql = "SELECT * FROM 1WjowbI77j1WFcn3IEtbwBymhVZh8jfmP_dg1epd9 WHERE Date = '2015-02-23'";

var requestUrl = "https://www.googleapis.com/fusiontables/v2/query?sql=" + sql +  "&key=" + key;

var timeKey = '10:25:04';

$.getJSON(requestUrl, function(data) {

    var filteredRows = data.rows.filter(function(row){

        var dtCur = Date.parse(row[3] + ' ' + row[7]);

        var dtKey = Date.parse(row[3] + ' ' + timeKey);

        if (dtCur > dtKey) {

            return row;

        }

    });



    //print

    var output = JSON.stringify(filteredRows, null, 2);

    $("#output").text(output);

});


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<pre style="background-color: #c0c0c0" id="output"></pre>
2021-06-07