使用“like”的mysql查询不能使用varchar和space

使用“like”的mysql查询不能使用varchar和space,mysql,sql-like,varchar,Mysql,Sql Like,Varchar,我有一个Db,其中一个表有3个字段,如下所示: user_id TimeStamp Azioni 其中“timestamp”字段是一个varchar25,如下所示:2012/09/19 16:34:01.95 它是一个varchar而不是一个timestamp值,因为我需要它是显示的格式。 即使我想,我也不能改变它的类型 现在,我正在尝试获取所有具有相同日期的db条目。例如,当时间戳包含2012/09/19时 我回答了几个问题: 查询0: SELECT Azioni.Action

我有一个Db,其中一个表有3个字段,如下所示:

user_id    TimeStamp    Azioni
其中“timestamp”字段是一个varchar25,如下所示:2012/09/19 16:34:01.95 它是一个varchar而不是一个timestamp值,因为我需要它是显示的格式。 即使我想,我也不能改变它的类型

现在,我正在尝试获取所有具有相同日期的db条目。例如,当时间戳包含2012/09/19时

我回答了几个问题:

查询0:

SELECT  Azioni.Action
FROM Azioni
WHERE TimeStamp LIKE '2012/09/19%'
问题1:

SELECT `Azioni`.*
FROM Azioni
Where `TimeStamp` LIKE  '{2012/09/19}%'
问题2:

SELECT  `Azioni` . * 
FROM Azioni
WHERE LOCATE(  '2008/09/19',  `TimeStamp` ) >0
问题3:

SELECT  `Azioni` . * 
FROM Azioni
WHERE INSTR(  `TimeStamp` ,  '2012/09/19' ) >0
问题4:

SELECT * FROM `Azioni` 
WHERE `TimeStamp` like '2012|/09|/19%' escape '|'
我总是得到:MySQL返回一个空的结果集,即零行

但我确信有行包含上述时间戳。我做错了什么?日期和时间之间的“间隔”是否会产生问题?如果是,我如何解决它?你有什么建议吗

编辑: Aa建议,从

SELECT TIMESTAMP, HEX( TIMESTAMP ) 
FROM Azioni
我得到以下信息

2009-06-06 09:28:00.0000    323030392D30362D30362030393A32383A30302E30303030
2009-06-06 09:29:00.0000    323030392D30362D30362030393A32393A30302E30303030
2009-06-06 09:30:51.0000    323030392D30362D30362030393A33303A35312E30303030
2009-06-06 14:25:00.0000    323030392D30362D30362031343A32353A30302E30303030
2009-06-06 14:26:00.0000    323030392D30362D30362031343A32363A30302E30303030
编辑2:

嗯,是的,我在查询中输入了错误的日期。唉,我真傻。很抱歉浪费了你们的时间。这个怎么样:

where timestamp like '2012/09/19%'
如果要调用字段timestamp,则应将其存储为date/datetime/timestamp。如果要将其存储为字符串,请将其命名为其他名称。Timestamp实际上是MySQL中一个类型的名称,因此将它放在具有不同类型的列名中是非常容易误导的

编辑:

您是否尝试过:

where left(timestamp, 10) = '2012/09/19'
听起来好像字段中有字符串,这妨碍了合理的代码工作。

从Azioni选择*
当'TimeStamp'像'2012/09/19%'时

你为什么在第一次尝试中添加{},从你的描述来看,{&}似乎不在该字段中?你是对的,我的字符串中没有图形,但我在某个地方读到了尝试添加{&}。由于没有图形的版本不起作用,我决定试一试。你能给我们看看你想匹配的特定行的SELECT Timestamp和HEXTimestamp的输出吗?可能有一些看不见的角色在那里把东西扔得乱七八糟。是的。我将结果添加到原始问题中。谢谢你的帮助呵呵,我们都去过;偶尔好好休息一下有助于生产,而不仅仅是埋头苦干:嗨!你说的对,命名一个sting字段时间戳是误导性的。遗憾的是,这不是我的db。我只是在做,不能修改。我所能做的就是做查询。至于你的建议,我已经试过了,对不起,我没能在我的问题中发布,我现在就编辑它,我仍然得到一个无效的答案是的,谢谢。我也试过了,但还是不行。也许问题出在“/”字符上?@Wikken。使用hexTimestamp来找出真正存储在那里的内容。