选择特定日期的记录

时间:2016-03-21 14:34:52

标签: sql sqlite

在我的表格中,我存储了2015-11-24 14:53等数据。

当我尝试从日期2015-11-24

中选择记录时
SELECT * FROM TRANSACTIONS where id='22' 
and date >= date('2015-11-24 00:00')  
and date <= date('2015-11-24 23:59') 

我没有得到任何东西......(有那个日期的记录)

2 个答案:

答案 0 :(得分:3)

您可以选择具有特定日期的所有记录,如下所示:

SELECT * FROM yourTable WHERE date('yourDateColumn') = 'your date';

在你的情况下:

SELECT * FROM TRANSACTIONS WHERE date(date) = '2015-11-24';

date()选择&#39; date&#39;你的DATETIME的一部分。例如:

date('2014-01-01 00:00:00') would return '2014-01-01'

答案 1 :(得分:1)

如果您选择date,这应该是唯一的,则无需按date进行选择。您可以考虑通过非唯一字段(在本例中为SELECT * FROM TRANSACTIONS where date >= date('2015-11-24 00:00') and date <= date('2015-11-24 23:59') )进行选择,例如搜索。但是你说“选择这个特定的行(id为22的行)然后检查它是否符合这些日期参数”。因此,使用此语句,您只能获得0或1个结果。

你应该将你的陈述改为这样的

SELECT * FROM TRANSACTIONS where 
date(date) >= date('2015-11-24 00:00')  
and date(date) <= date('2015-11-24 23:59') 

但是,正如Allinone51指出的那样,如果您的字段属于TEXT类型,则可以安全地在您的文本字段中调用date()函数

select date('2015-11-24 23:59');

话虽如此,非日期比较应该有效。要对此进行测试,请在命令窗口中打开sqlite3并运行2015-11-24。结果将是date()

如果我们使用前一天的日期对此进行测试,则使用布尔运算符的各种组合以及sqlite> SELECT (date('2015-11-24 23:59') == '2015-11-24'); 1 sqlite> SELECT (date('2015-11-24 23:59') >= '2015-11-23'); 1 sqlite> SELECT (date('2015-11-24 23:59') <= '2015-11-23'); 0 sqlite> SELECT (date('2015-11-24 23:59') < '2015-11-23'); 0 sqlite> SELECT (date('2015-11-24 23:59') > '2015-11-23'); 1 sqlite> SELECT (date('2015-11-24 23:59') == date('2015-11-24')); 1 sqlite> SELECT (date('2015-11-24 23:59') >= date('2015-11-23')); 1 sqlite> SELECT (date('2015-11-24 23:59') <= date('2015-11-23')); 0 sqlite> SELECT (date('2015-11-24 23:59') < date('2015-11-23')); 0 sqlite> SELECT (date('2015-11-24 23:59') > date('2015-11-23')); 1 函数的使用来获得结果。

date

因此,如果我在您的陈述中加入示例SELECT date('2015-11-24') >= date('2015-11-24 00:00') and date('2015-11-24') <= date('2015-11-24 23:59'); 1 值,我最终会得到此结果

date('2015-11-24 00:00')

最后一点:正如Allinone51在评论中指出的那样,date('2015-11-24 23:59')2015-11-24会返回相同的值sqlite> SELECT date('2015-11-24 00:00'); 2015-11-24 sqlite> SELECT date('2015-11-24 23:59'); 2015-11-24

var text = "";
$.ajax({
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    type: "POST",
    url: DataReview.BASE + "/Encryption/FetchLatestEditBy",
    data: JSON.stringify({
        "ExtendedReport_id": dataRow["ExtendedReport_id"],
        "Report_id": dataRow["Report_id"]
    }),
    success: function (data) {
        text = data.ResultData;
    },
    error: function (data) {
        console.log(data);
    }
});

setTimeout(function () {
    console.log(text); //This displays the value
    $(this).attr('data-toggle', 'tooltip');
    $(this).attr('title', text);
}, 1000);

基于此,也许你想要datetime()函数?