SQL如何按時(shí)間段查詢

2022-10-07 19:06

2022-10-07 21:01
估計(jì)你這個(gè)是sqlserver,我給你寫一下:

SELECT * FROM Record
WHERE
convert(varchar(10),Times,120) BETWEEN '2010-01-01' and '2010-12-31'
AND DatePart('w',Times) BETWEEN 2 AND 6
AND (
CONVERT(varchar(8), Times, 8) BETWEEN '08:30:00' and '12:00:00'
or
CONVERT(varchar(8), Times, 8) BETWEEN '12:30:00' and '17:00:00'
)
更多回答
SELECT * FROM Record WHERE
TO_CHAR(Times,'YYYY/MM/DD') BETWEEN '2010/01/01' and '2010/12/31'
AND TO_CHAR(Times,'D') BETWEEN 2 AND 6
AND (TO_CHAR(Times,'HH24:Mi:SS') BETWEEN '08:30:00' and '12:00:00' or TO_CHAR(Times,'HH24:Mi:SS') BETWEEN '12:30:00' and '17:00:00')
'D' 是獲取星期,從星期日 開始 是1 ,其他的就不用說了吧。
時(shí)間函數(shù)各個(gè)數(shù)據(jù)庫不完全相同,但思路是一樣的,不要糾結(jié)時(shí)間段。
其實(shí)你上面的需求就是:
YEAR(RECORD)=2010
DAYOFWEEK BETWEEN 1 AND 5
這個(gè)樣子,就是時(shí)間型字段拆分判斷,根據(jù)不同數(shù)據(jù)庫使用時(shí)間函數(shù)就可以了。
用 between and
熱門問答