我在Access 2007數據庫中有一個表。所有字段都是文本類型。使用where子句可以完成以下任務嗎?如果是這樣如何?SQl按日期範圍查詢
- SELECT從表1 * WHERE(ColumnDate是2010年3月的第26和19之間)
- SELECT從表1 * WHERE(ColumnAge是25和40之間)通常< < =運算
似乎沒有工作。
感謝,
我在Access 2007數據庫中有一個表。所有字段都是文本類型。使用where子句可以完成以下任務嗎?如果是這樣如何?SQl按日期範圍查詢
似乎沒有工作。
感謝,
SELECT * from Table1 WHERE (CDATE(ColumnDate) BETWEEN #03/26/2010# AND #03/19/2010#)
SELECT * from Table1 WHERE (CINT(ColumnAge) between 25 and 40)
日期在#MM/DD/YYYY#
表示在#
符號之間的訪問。 你應該真的將日期存儲爲日期字段:)
SELECT * from Table1 WHERE ColumnDate between '2010-03-26' and '2010-03-19'
SELECT * from Table1 WHERE ColumnAge between 25 and 40
我不使用Access,所以因人而異。
您不使用Access,併發布不會在Access中運行的SQL。如果列中的所有日期存儲爲yyyy-mm-dd,則第一個將起作用,但不以其他方式存儲。第二個不行,因爲原來的問題說所有的字段都是文本。 – 2010-03-26 19:04:47
嘗試使用CDate
函數將ColumnDate
轉換爲實際日期/時間。我想可以用CInt
來完成轉換爲int的操作。
我不使用Access,所以這只是一個常識性的猜測。
這些內置的SQL函數,如果是這樣,他們如何在查詢中調用它們。一個例子,將不勝感激。 – tecno 2010-03-26 10:09:34
其實Anton Gogolev的回答提醒我把它們放到我的樣本中。所以,他配得上我:) – Codesleuth 2010-03-26 10:11:16
Mr.David-W-Fenton說得對,Marcelo的第一個SELECT * from Table1 WHERE ColumnDate between '2010-03-26' and '2010-03-19'
不工作,並且錯誤地暗示原因。該條款是不正確的,因爲日期字符串表示引號,日期格式非常好。所以我認爲
SELECT * from Table1 WHERE CDATE(ColumnDate) between #2010-03-26# and #2010-03-19#
一個妥善的解決辦法。
唷,你說得對,我只是跟着馬塞洛。謝謝,修復查詢。 – 2012-12-02 08:23:29
謝謝, 我需要搜索那些年齡介於25到40歲之間的人。 – tecno 2010-03-26 10:07:22
BETWEEN結果包括兩個外部範圍值。你應該得到年齡在25歲到40歲之間的人。 – Codesleuth 2010-03-26 10:10:06
謝謝再次感謝。 – tecno 2010-03-26 10:16:19