【问题标题】:how to pass multiple date values to a single variable in sql如何将多个日期值传递给sql中的单个变量
【发布时间】:2020-02-27 10:12:35
【问题描述】:

无法传递多个日期值。

declare @Exdate date
set @Exdate = '2020-2-26','2020-2-27'

select * 
from X 
where Ex_Date in (@Exdate)

【问题讨论】:

  • 标记您正在使用的 DBMS。

标签: sql-server tsql split


【解决方案1】:

你需要调用 split 函数:

select x.* 
from X cross apply
     dbo.splitfn(@Exdate, ',') as spt(dateval)
where x.Ex_Date = dateval;

您的变量 (@Exdate) 应该有单个字符串而不是多个:

set @Exdate = '2020-2-26, 2020-2-27'

【讨论】:

  • 这里的日期值可能是单个日期或多个日期。函数也需要为单个日期工作
  • @DineshkumarMohan。 . .是的。
  • @DineshkumarMohan。 . .它是伪函数名,需要更改你的函数名。但是,2016 + 具有默认的拆分功能。你可以使用它。
  • @DineshkumarMohan。 . .那就看stackoverflow.com/questions/46902892/…
  • 我正在使用 MSSQLServer2012
【解决方案2】:

是否需要不同的日期时间值,可以声明表变量:

declare @Exdate table (
 date_value date
)
insert into @Exdate (date_value)
values ('2020-2-26'),('2020-2-27')
select *
from X where Ex_date in (select date_values from @Exdate)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多