我怎样才能在sphinx中使用日期之间查询where子句

时间:2017-03-29 04:41:15

标签: mysql sql sphinx

我有这个问题:

select * from tabel where last_purchase_categories = 'flight' 
 and last_purchase_date between '2016-10-23 11:06:47' and '2016-10-23 11:06:49';

它在狮身人面像中没有用。我使用mysql查询浏览器进行全文搜索。 有谁知道如何在sphinx中使用日期格式?

3 个答案:

答案 0 :(得分:0)

我认为这是因为last_purchase_date的数据类型是字符串。这就是为什么我不能在查询之间使用

答案 1 :(得分:0)

狮身人面像不能像这样进行字符串比较,至少在两者之间(假设你在字符串属性中有日期)。而且没有一个“约会时间”' 属性也可以输入。

可以将日期放在简单的数字属性中,并对其进行比较。

Unix时间戳可能很方便,可以在sphinx配置文件中使用(使用mysql unix_timestamp()函数)

sql_query = SELECT ..., UNIX_TIMESTAMP(last_purchase_date) AS last_purchase_date FROM ... 
sql_attr_uint = last_purchase_date 

然后查询就像

select * from tabel where last_purchase_categories = 'flight' 
 and last_purchase_date between 1477217207 and 1477217209;

大多数编程语言都有将日期转换为时间戳的便捷功能。

答案 2 :(得分:-2)

让我们试试这个

它会起作用。

SELECT count(*) FROM `tabel` 
where last_purchase_categories = 'flight' and 
    last_purchase_date between '2017-03-27 02:13:11' and '2017-03-27 02:13:20'