gpt4 book ai didi

sql - 我可以在 SQL Server 中同时使用 like 和 Between 子句吗

转载 作者:行者123 更新时间:2023-12-02 12:01:22 27 4
gpt4 key购买 nike

我在 SQL Server 中存储了一些数据,其中包含日期(date 数据类型)。我目前正在使用 BETWEEN 子句来过滤日期范围内的记录,如下所示...

SELECT 
*
FROM
Report
WHERE
ReportDate BETWEEN '2016-08-01' AND '2017-08-01'

是否可以同时使用 BETWEENLIKE 子句或类似的子句,以便每当用户未指定任何日期时,他/她都会能够提取所有报告吗?到目前为止,查询如下

SELECT 
*
FROM
Report
WHERE
ReportDate BETWEEN '' AND ''

根本不显示任何记录。有没有办法做到这一点..?

最佳答案

NULL 与参数一起使用...如果没有为 @startDate@endDate 指定值,则默认值为 NULL 对于这些参数,并且将满足第二个 WHERE 条件,返回所有记录。

create proc myProc(@startDate datetime = null, @endDate datetime = null)
as

SELECT * FROM Report
WHERE
(ReportDate BETWEEN @startDate AND @endDate)
or
(@startDate is null and @endDate is null)

此外,如果您的字段是 DATETIMEthis blog by Aaron is well worth your read.

此外,此方法意味着用户必须输入两个参数或都不输入两个参数。如果这不是您想要的,请告诉我们。

关于sql - 我可以在 SQL Server 中同时使用 like 和 Between 子句吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45989915/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com