SELECT all_data 哪里 value_in_column 喜欢 specific_string

SELECT all_data WHERE value_in_column LIKE specific_string

我有一个 MySQL 数据库和一个 table,其中包含特定车辆在许多不同日期的大量数据。在此 table 中有一个名为 time_stamp 的列,其中包含数据的获取日期,如下所示:

ID   UnitID   time_stamp         data   more_data
0    56       2016-08-10 12:01   asdf   12
1    57       2016-08-09 11:19   ghjk   34
2    57       2016-08-09 9:35    qwer   56
3    58       2016-08-09 1:16    tyui   78

我想 select table 中 UnitID LIKE 57time_stamp LIKE 2016-08-09% 中的所有内容,以便 return:

ID   UnitID   time_stamp         data   more_data
1    57       2016-08-09 11:19   ghjk   34
2    57       2016-08-09 9:35    qwer   56

我已经尝试 SELECT * FROM table_name WHERE time_stamp LIKE 2016-08-09% AND UnitID LIKE 57;,但我一直收到 Error Code: 1054 告诉我有一个 unknown column in 'where clause'。我对 MySQL 还是很陌生,但我通常可以在 MySQL Docs, however this one I cannot figure out. I have also looked for similar questions like this one here 的帮助下弄清楚我需要做什么,但我发现的任何东西都无法完全完成我想要的。

LIKE 用于字符串匹配,因此与更合适的运算符相比相对较慢。使用 WHERE 这样的查询会更好:

WHERE UnitID = 57 AND time_stamp BETWEEN '2016-08-09 00:00:00' AND '2016-08-09 23:59:29'

也就是说,MySQL 对您提出的查询的主要反对意见可能是您没有将 2016-08-09% 括在引号中。

此处不需要 LIKE 子句。试试这个:

SELECT * FROM table_name
WHERE
time_stamp >= Convert(datetime,'2016-08-09')
AND
time_stamp < Convert(datetime,'2016-08-10')
AND
UnitID = 57

我认为此查询不需要 LIKE,因为您要查找的数据不是 TEXTVARCHARCHAR数据。尝试在您的谓词中这样做:

WHERE UnitID = 57 AND DATE(time_stamp) = '2016-08-09'