2014-06-29 59 views
0

嘿傢伙我不知道如何問這個我是相當新的Delphi但我試圖通過德爾福顯示數據庫我顯示的人員列表和他們的出生日期,但我希望德爾福只顯示在某一年出生的人,我真的不知道如何做到這一點,這是我迄今爲止,但它並沒有真正的工作。德爾福SQL如何只顯示某些日期從數據庫中

adoQ.Active := false; 
adoQ.SQL.Text := 'select SPELER, GEBOORTEDATUM from Tennis_Spelers WHERE GEBOORTEDATUM <> 00-00-1986'; 
adoQ.Open; 

任何幫助將不勝感激。

+0

您正在使用什麼服務器,MS SQL?如果是這樣的話,就像「WHAT DATEPART(YEAR,GEBOORTEDATUM)= 1988」 – MartynA

+0

我不確定,但就像我說過的,我對此非常感興趣,所以我很抱歉如果這會給您帶來不便,但我認爲這是MS – ElectricWizard

+0

MS SqlServer或MS Access? – MartynA

回答

1

你必須使用參數:

adoQ.SQL.Text := 'select SPELER, GEBOORTEDATUM from Tennis_Spelers WHERE GEBOORTE =:a1' 
adoQ.SQL.Paramaters('a1').asdate := datetimepicker1.date; 

如果你不使用的DateTimePicker然後訪問會提示您輸入參數。

+0

好的,謝謝你,抱歉不要用英文發帖。 – ElectricWizard

+1

不錯的方法是使用兩個日期時間選擇器,以便您可以選擇...之間的日期....它更動態...像GEBOORTE BETWEEN:a1 AND =:a2(a1和a2是datetimepickers) – user3777264

+0

這隻會顯示出生的人恰好在那天。如果任務只顯示某一年出生的人,那麼你應該採用不同的方法。 – TLama

0

您不需要使用參數。例如,這種或類似的代碼應該每個數據庫上運行:

adoQ.SQL.Text := 'select SPELER, GEBOORTEDATUM from Tennis_Spelers WHERE GEBOORTEDATUM >= ''19740101'' AND GEBOORTEDATUM <= ''19741231'''; 

在MS Access中,您也可以嘗試:

adoQ.SQL.Text := 'select SPELER, GEBOORTEDATUM from Tennis_Spelers WHERE GEBOORTEDATUM >= #01/01/1974# AND GEBOORTEDATUM <= #12/31/1974#';