【问题标题】:Getting values from Database instead of using Declare从数据库中获取值而不是使用 Declare
【发布时间】:2015-10-29 04:50:12
【问题描述】:

我正在使用

declare @starttime datetime = '2015-10-28 10:00', 
        @endtime datetime = '2015-10-28 12:00', 
        @interval int = 30

我想从表中检索这些值,而不是将它们声明为静态值。我有一个单独的表,其中包含这 3 个值(StartdateEnddateinterval)。

我尝试创建一个临时表,然后将值插入其中,但如果我想在进一步的查询中使用这些值,命名约定将无法正常工作。我的整个查询是这样的,在这我希望从数据库中获取 startdateenddateinterval 而不是静态的。

create table #booking (start datetime, [end] datetime)
 insert into #booking values 
 ('2015-10-28 08:00','2015-10-28 08:30'),
 ('2015-10-28 10:00','2015-10-28 10:30'),
 ('2015-10-28 10:30','2015-10-28 11:00')

 declare @starttime datetime = '2015-10-28 08:00',
         @endtime datetime = '2015-10-28 12:00', 
         @interval int = 30, 
         @slots int

 select @slots = datediff(minute, @starttime, @endtime)/@interval

 SELECT TOP (@slots) N=IDENTITY(INT, 1, 1)
 INTO #Numbers
 FROM master.dbo.syscolumns a CROSS JOIN master.dbo.syscolumns  b;

 select 
     dateadd(minute,((n-1)*@interval),@starttime) as start,
     dateadd(minute,(n*@interval),@starttime) as [end]
 into
     #slots
 from
     #numbers

 select s.*, b.* from #slots s
 left join #booking b
 on s.start = b.start and s.[end] = b.[end]
 where b.start is null

 drop table #numbers, #booking, #slots

【问题讨论】:

    标签: sql-server join temp


    【解决方案1】:

    我不太确定我是否理解这个问题,但假设您可以从该表中获取一行,您可以这样做:

    declare @starttime datetime
           ,@endtime datetime
           ,@interval int 
    
    select @starttime = starttime
          ,@endtime = endtime 
          ,@interval = interval
     from yourTable
     where <condition>
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      SELECT
        @starttime = Startdate
      , @endtime   = Enddate
      , @interval  = interval
      FROM  YourTableHere
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-29
        • 1970-01-01
        • 2017-07-23
        • 2021-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多