2012-12-13 139 views
-3

我有兩個字段,其中存儲事件的特定日期範圍。MySQL:在兩個日期字段的日期之間

比方說,活動將於12/13/12 - 12/20/12開始。

因此,我們的領域是

名稱:My事件 Start_at:12年12月13日 End_at:12年12月20日

用戶將有兩個輸入框。一個框會顯示from_date和另一個to_date。如果用戶選擇

FROM_DATE:12年12月15日 TO_DATE:12年12月19日

,因爲它落入DATE_RANGE它應該顯示「我的event`紀錄。

問題:你如何在SQL中解決這個問題?

+1

這個問題太簡單了。谷歌它 –

+0

它也太廣泛:不同的數據庫技術使用不同的代碼來實現這一點。你應該指定你正在使用的數據庫(即MySQL)。 – Anton

+0

認真只是在谷歌類型「mysql選擇日期範圍」.... – Atticus

回答

1

這取決於你如何保持最新的數據在數據庫

如果是建設「之間」一「日期時間」字段使用

mysql_query("select * from events where date between '".date("Y-m-d H:i:s", strtotime($from_date))."' and ".date("Y-m-d H:i:s", strtotime($to_date))); 

我不能讓精確的查詢,因爲我不知道現場在表中的名稱和參數名稱查詢

我希望你能理解我的想法

+0

有兩個字段:start_date和end_date。 –

0

至於我的經驗。日期INT數據類型比MySQL數據庫, 你可以嘗試更改日期時間爲INT第一,然後將其保存在數據庫中,然後才能將其轉換爲秒datetime數據類型打火機,說:

<?php 
$start_at = strtotime("12/13/12"); 
$end_at = strtotime("12/20/12"); 
/* SAVE on the database */ 
?> 

然後保存它與INT數據類型

然後在查詢表日期字段,你可以很容易地說

如果用戶輸入FROM_DATE:12年12月15日TO_DATE:12年12月19日在這兩個領域(啓動和末場)

<?php 
$start_at = strtotime($from_date); //12/15/12 
$end_at = strtotime($to_date); //12/19/12 
/*do the query*/ 
mysql_query("SELECT name FROM table WHERE Start_at <= '$start_at' AND End_at >= '$end_at'"); 
?> 

我沒有完成腳本,但想法在那裏,希望你能得到它。

相關問題