写入查询以比较谷歌融合表中的时间

时间:2015-06-06 19:33:31

标签: sql google-fusion-tables

我想从google fusion table获得满足给定日期条件的所有条目           时间列>具体时间

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

2 个答案:

答案 0 :(得分:1)

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

在这种情况下,似乎Date/Time列上的过滤支持

根据Row and Query SQL Reference文件:

  

在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示例所示:

&#13;
&#13;
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);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre style="background-color: #c0c0c0" id="output"></pre>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我无法准确地告诉你那里发生了什么,唯一的问题是我看到你已经忽略了AM(PM)

文档提到了支持过滤的DateTime-Formats,但我认为这部分文档已经过时(参见:Date query with the current date between two date_time columns)。

对我而言,当我复制表格时,它会按预期工作(您可以这样做):

https://www.googleapis.com/fusiontables/v2/query?sql=SELECT * FROM 12tl0d4jZRkhPD9ZdBzP2QzK4TyEu-U_Dnn8kimft WHERE Date = '2015-02-23' AND Time > '10:25:04 AM'&key=yourKey

当一个表被复制并在内部以另一种格式存储DateTime-columns时,他们可能会运行验证。