在MySQL中比较date
我想比较两个给定date之间的数据库中的date。 数据库中的列是DATETIME,我只想将它与date格式进行比较,而不是date时间格式。
SELECT * FROM `players` WHERE CONVERT(CHAR(10),us_reg_date,120) >= '2000-07-05' AND CONVERT(CHAR(10),us_reg_date,120) <= '2011-11-10'
我在执行上面的SQL时遇到这个错误:
你的SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册,以在'us_reg_date,120'附近使用正确的语法)> ='2000-07-05'AND CONVERT(CHAR(10),us_reg_date,120)<='2011-'at第1行
这个问题怎么解决?
你可以试试下面的查询,
select * from players where us_reg_date between '2000-07-05' and DATE_ADD('2011-11-10',INTERVAL 1 DAY)
这是将date转换为string的SQL Server语法 。 在MySQL中,您可以使用DATE函数从date时间中提取date:
SELECT * FROM players WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10'
但是,如果您想利用us_reg_date
列上的索引,则可能需要尝试以下操作:
SELECT * FROM players WHERE us_reg_date >= '2000-07-05' AND us_reg_date < '2011-11-10' + interval 1 day
这适用于我:
select date_format(date(starttime),'%Y-%m-%d') from data where date(starttime) >= date '2012-11-02';
请注意格式string“%Y-%m-%d”和inputdate的格式。
嘿家伙谢谢你的帮助,我得到了答案。
这里是代码…….
SELECT * FROM table WHERE STR_TO_DATE(column, '%d/%m/%Y') BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y') AND STR_TO_DATE('07/10/15', '%d/%m/%Y')
这是它对我的工作:
select * from table where column BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y') AND STR_TO_DATE('07/10/15', '%d/%m/%Y')
请注意,我必须更改STR_TO_DATE(列'%d /%m /%Y')以前的解决scheme,因为它正在花费时间来加载