[英]Comparing String Dates Pulled From MySql Database
我在MySQL數據庫中有一個關系,該數據庫以varchar形式存儲日期以及其他屬性。 看起來像:
答案answerId答案QuestionId日期
我有一個Web應用程序,用戶可以在其中選擇“開始”和“結束”日期,並且需要在提供的范圍之間提取相關答案。 所以我的問題是我將如何實現一個php文件來正確查詢數據庫,從而在提供的日期之間提取答案。
如果日期使用YY-mm-dd
(從最大值到最低,帶有前導零),則可以將其與字符串進行比較(按字典順序)
但是您應該為日期使用正確的數據類型( DATE
, DATETIME
, TIMESTAMP
)
這是一個簡單的解決方案:
您可以將日期(已經存儲在您的MySQL數據庫中)轉換為Unix時間 ,並將其與任何數字一樣進行比較。
例如
$date1 = strtotime("2010-11-12");
$date2 = strtotime("2010-11-14");
並比較$date1
和$date2
。
正如@RiaD所寫,您使用了正確的日期類型。 但是,如果您不能更改類型,則應使用STR_TO_DATE將Varchar字符串轉換為DATETIME。
參見http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date
這樣您的查詢將看起來像
Select * from table
where STR_TO_DATE(field_name, 'YOUR_DATE_FORMAT') between start_date and end_date;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.