我希望按两个日期输入(FROM_DATE
& TO_DATE
)来过滤两个日期之间的记录(@frm_dt& @to_dt),如果我给出两个日期(@frm_dt& @to_dt)作为两个输入我想过滤记录取决于FROM_DATE
和TO_DATE
之间的可用日期。
我在这种情况下打了一个多星期。
我的英语沟通能力很差。请帮助我。
FROM_DATE TO_DATE
2017-01-02 . 2017-06-30 .
2017-01-02 . 2017-09-30 .
2017-01-02 . 2017-12-31 .
2017-01-02 . 2017-10-31 .
2017-01-02 . 2017-11-30 .
2017-01-02 . 2017-10-31 .
2017-01-02 . 2017-09-29 .
2017-01-02 . 2017-12-31 .
2017-01-02 . 2017-08-31 .
2017-01-02 . 2017-11-30 .
2017-01-02 . 2017-10-31 .
2017-01-02 . 2017-10-30 .
2017-01-02 . 2017-09-30 .
2017-01-02 . 2017-09-30 .
如果我将@frm_dt作为2017-01-01& to_dt为2017-06-30,它应该返回所有记录,因为这两个日期介于FROM_DATE
&之间。 TWO_DATE
。
同样,如果我将@frm_dt作为2017-10-31& to_dt 2017-12-25.it应该只返回低于日期
FROM_DATE TO_DATE
2017-01-02 . 2017-12-31 .
2017-01-02 . 2017-10-31 .
2017-01-02 . 2017-11-30 .
2017-01-02 . 2017-10-31 .
2017-01-02 . 2017-12-31 .
2017-01-02 . 2017-11-30 .
2017-01-02 . 2017-10-31 .
答案 0 :(得分:0)
答案 1 :(得分:0)
只需在数据库中执行此查询,即可获得输出。
Create procedure ReturnDates(
@fromDate datetime,
@todate datetime
)
AS BEGIn
Select From_dt ,TO_DT
from tablename
WHERE FROM_DT >= @fromDate and TO_DT <= @todate
END
GO
答案 2 :(得分:0)
请使用此条件:
WHERE CAST(FROM_DATE AS DATETIME) >= CAST(@frm_dt AS DATETIME) AND
CAST(TO_DATE AS DATETIME) <= CAST(@to_dt AS DATETIME)
或者你可以使用这个条件:
WHERE CONVERT(NVARCHAR(10), FROM_DATE, 121) >= CONVERT(NVARCHAR(10), @frm_dt, 121) AND
CONVERT(NVARCHAR(10), TO_DATE, 121) <= CONVERT(NVARCHAR(10), @to_dt, 121)
答案 3 :(得分:-1)
您可以查看check W3SCHOOL!这里。 我想你会尝试INBETWEEN和BETWEEN。