我有问题,所以我有表让所说的名字是table1,那个table1已经提交了名称UserName。而像这样的价值“ Jiyo-192.168.10.22 Date 31-Aug-2016 Jam 11:35:36 ”,所以这样的格式值 的&安培;名称&安培; - &安培; IPADDRESS&安培;日期和日期时间& 。因为我想UserName成为日期我使用像这样的subtring_index SUBSTRING_INDEX(SUBSTRING_INDEX(UserName,'Date', - 1),'Jam',1)AS date1 但我的问题是我需要查询两个日期之间的date1,我只是使用我的代码
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(UserName,'Date ',-1),' Jam',1) FROM table1
WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(UserName,'Date ',-1),' Jam',1) BETWEEN DATE_FORMAT('2016-11-01','%d-%b-%Y') AND DATE_FORMAT('2016-11-18','%d-%b-%Y')
但是,从2007年3月12日到2016年11月17日,我们的结果并未得到证实。我得错了什么或者substring_index真的没有工作来获得价值日期?
答案 0 :(得分:0)
我认为您必须使用CAST()
来执行BETWEEN
,就像那样:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(UserName,'Date ',-1),' Jam',1) FROM table1
WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(UserName,'Date ',-1),' Jam',1)
BETWEEN CAST('2016-11-01' AS DATETIME)
AND CAST('2016-11-18' AS DATETIME)