当我最初设计我的数据库时,我犯了一个错误,我有一个"约会"具有ID,DATE,TIME的表格,但DATE字段的类型为VARCHAR,我以此格式保存:29/08/2015
现在我想运行一个选择所有约会的查询,从今天开始2天。
我该怎么做?
由于
答案 0 :(得分:2)
您应该在表格中修复列定义,同时检索您需要使用的数据str_to_date
函数
select * from table_name
where str_to_date(DATE,'%d/%m/%Y') = date_add(now(),interval 2 day)
varchar日期不是真实日期,会为不同的部分创建更多问题,要修复表格列,您可以按照以下步骤进行操作
第1步:
alter table table_name add column new_date date ;
第2步:
update table_name set new_date = str_to_date(DATE,'%d/%m/%Y');
第3步:
alter table_name drop column DATE ;
alter table_name change new_date DATE date
答案 1 :(得分:1)
使用date();
。
$twoDaysFromNow = date('d/m/y', time() + 172800); // Adds exactly two days (172,800 seconds) to the current day, and returns it in given format.
$sql = "SELECT FROM `appointments` WHERE `date` = '{$twoDaysFromNow}'"; // Execute query with new date.