Data_Insertion
A | MUN170171/P0164 | 16:19:10 | 2018-12-12
B | MUN170161/P0165 | 17:19:10 | 2018-12-12
C | MUN170151/P0166 | 18:19:10 | 2018-12-13
D | MUN170141/P0167 | 19:19:10 | 2018-12-13
E | MUN170121/P0168 | 20:19:10 | 2018-12-15
上面的列包含不同类型的数据、用户、id、时间和日期。那么,是否可以使用between来获取用户选择下午1点到6点的时间范围呢?
我尝试使用like,但它只能从数据库中检索一个数据。
我尝试了以下方法,但不起作用:
SELECT FROM `table'
WHERE Data_Insertion >= "13:00:00" and Data_Insertion <= "18:00:00"
AND `Data_Insertion` LIKE('%2018-12-12%')
Group by
有没有办法让我做以下工作?
3条答案
按热度按时间gr8qqesn1#
您要提取倒数第二列。你可以用
substring_index()
. 比如说:从t中选择t.*,其中substring_index(substring_index(data_insertion,“|”、-2)、“|”、-1)介于“13:00:00”和“18:00:00”之间
50pmv0ei2#
首先,将数据输入正确的类型:
之后,以下内容将与数值范围比较一起使用(
>
/<
/=
...)使用字符串运算符从来不是一个好主意。
LIKE
,在数字字段上。cgvd09ve3#
如果您认为数据的格式将是相同的,那么您可以使用substring来获取值,因为此解决方案更像是硬编码搜索,而不是灵活的搜索。
输出:
如果您的数据格式不一致,我假设会有一些灵活的方法。