簡體   English   中英

MySQL選擇所有日期(以varchar類型存儲)

[英]MySQL select all where date (stored in varchar type)

我在最初設計我的數據庫時犯了一個錯誤,我有一個帶有 ID、DATE、TIME 的“約會”表,但 DATE 字段的類型是 VARCHAR,我用這種格式保存:29/08/2015

現在我想運行一個查詢,選擇所有約會,從今天起 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

使用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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM