表T1
开始 时间 结束时间
09:00:00 12:00:00
14:00:00 17:00:00
查询出当前服务器时间是否在表T1时间段内,如果有则选择出
选出的sql结果集如下,求SQL, 注:SQL2000环境
开始 时间 结束时间
14:00:00 17:00:00
方法一:
DECLARE
@t
TABLE
(
beginTime
CHAR
(8),
endTime
CHAR
(8)
)
INSERT
INTO
@t
values
(
'09:00:00'
,
'12:00:00'
)
INSERT
INTO
@t
values
(
'14:00:00'
,
'17:00:00'
)
SELECT
*
FROM
@t
WHERE
CONVERT
(
CHAR
(8), GETDATE(),114)
BETWEEN
beginTime
AND
endTime
/*
beginTime endTime
14:00:00 17:00:00
*/
方法二:
IF OBJECT_ID('tempdb..#T1')IS NOT NULL DROP TABLE #T1
CREATE TABLE #T1(id INT IDENTITY,开始时间 NVARCHAR(50),结束时间 NVARCHAR(50))
INSERT INTO #T1
(开始时间 ,结束时间 )
VALUES ('09:00:00','12:00:00')
INSERT INTO #T1
(开始时间 ,结束时间 )
VALUES ('14:00:00','17:00:00')
SELECT * FROM #T1 WHERE
CONVERT(DATETIME,'1900-01-01 '+开始时间)<=CONVERT(DATETIME,'1900-01-01 '+SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),21),12,50))
AND
CONVERT(DATETIME,'1900-01-01 '+结束时间)>=CONVERT(DATETIME,'1900-01-01 '+SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),21),12,50))
CREATE TABLE #T1(id INT IDENTITY,开始时间 NVARCHAR(50),结束时间 NVARCHAR(50))
INSERT INTO #T1
(开始时间 ,结束时间 )
VALUES ('09:00:00','12:00:00')
INSERT INTO #T1
(开始时间 ,结束时间 )
VALUES ('14:00:00','17:00:00')
SELECT * FROM #T1 WHERE
CONVERT(DATETIME,'1900-01-01 '+开始时间)<=CONVERT(DATETIME,'1900-01-01 '+SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),21),12,50))
AND
CONVERT(DATETIME,'1900-01-01 '+结束时间)>=CONVERT(DATETIME,'1900-01-01 '+SUBSTRING(CONVERT(NVARCHAR(50),GETDATE(),21),12,50))