iT邦幫忙

0

如何使用SQL找出兩個日期範圍內有包含今天的資料

noah 2009-04-07 15:10:2458619 瀏覽

請問我有一個的資料表內有開始日期結束日期的欄位,現在想找出在這兩個日期範圍內有包含今天的資訊,要如何下SQL 指令?

36
外獅佬
iT邦大師 1 級 ‧ 2009-04-07 15:34:26
最佳解答

SELECT * FROM [資料表] WHERE CURRENT_DATE() BETWEEN [開始日期] AND [結束日期]

CURRENT_DATE()是MySQL取得目前系統日期的函數,如果使用其他資料庫,記得自行改成對應的函數

24
pantc328
iT邦研究生 1 級 ‧ 2009-04-07 15:34:10

SELECT * FROM
(SELECT * FROM TableName
WHERE 今天的條件) as Today
INNER JOIN
(SELECT * FROM TableName
WHERE xx>=開始 AND xx<=結束) as OtherDay
ON OtherDay.PK=Today.PK

22
jessewang
iT邦研究生 4 級 ‧ 2009-04-07 20:17:01

這不會是學校的功課吧?這是很基礎的 SQL 語法啊。

24
franklintmc
iT邦新手 2 級 ‧ 2009-04-07 22:04:28

這題目好像有點太簡單!
因為我喜歡用日期的運算處理,所以以mysql為例:
我會用
select * from table_name where (curdate()-開始日期)>=0 and (curdate()-結束日期)<=0;
但要注意日期的資料型態。

26
ccfang1018
iT邦新手 4 級 ‧ 2009-04-08 07:46:18

select *
from table
where 開始日期 >= 今天日期
and 結束日期 <= 今天日期

另外 你的題目不明確....

12
garyser
iT邦新手 5 級 ‧ 2009-04-08 11:43:11

select * from [資料表]
where CREATE_DATE between to_date('2009/04/08','yyyy/mm/dd') and to_date('2009/04/12','yyyy/mm/dd')

例子:查2009/04/08~2009/04/12資料

我要發表回答

立即登入回答