MySQL选择所有日期(存储在varchar类型中)

时间:2015-09-11 12:31:12

标签: php mysql date select varchar

当我最初设计我的数据库时,我犯了一个错误,我有一个"约会"具有ID,DATE,TIME的表格,但DATE字段的类型为VARCHAR,我以此格式保存:29/08/2015

现在我想运行一个选择所有约会的查询,从今天开始2天。

我该怎么做?

由于

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.