请帮我改一下这个句子,意思明白,就是不知道怎么用SQL实现?

youzhj 2010-07-05 03:34:40
declare @dt datetime,@i int,@dt1 datetime
set @dt='2010-3-25'
set @i=30
while @dt1<'2010-6-21 16:00:00'
begin
set @dt1=dateadd(mi,@i,@dt)
set @i=@i+30
end
select @dt1 as sDatetime
...全文
75 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL_Hhy 2010-07-05
  • 打赏
  • 举报
回复
declare @dt datetime,@i int,@dt1 datetime
set @dt='2010-3-25'
set @i=30
select @dt1
while @dt<'2010-3-25 16:00:00'
begin
set @dt=dateadd(mi,@i,@dt)
set @i=@i+30
set @dt1=@dt
end
select @dt1 as sDatetime

这样也行
百年树人 2010-07-05
  • 打赏
  • 举报
回复
declare @dt datetime,@i int,@dt1 datetime
set @dt='2010-3-25'
set @dt1='2010-3-25'
set @i=30
while @dt1<'2010-6-21 16:00:00'
begin
set @dt1=dateadd(mi,@i,@dt)
set @i=@i+30
--print @i
end
select @dt1 as sDatetime
SQL_Hhy 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 youzhj 的回复:]

引用 1 楼 josy 的回复:
你要输出一个日期列表吗?
我就是想让日期按30分钟循环递增,直到日期小于'2010-6-21 16:00:00',因为我在每次循环后要执行一个操作。
[/Quote]
给@dt1 赋一个初始值就行了
ask_chang 2010-07-05
  • 打赏
  • 举报
回复
declare @dt datetime,@i int,@dt1 datetime
set @dt='2010-3-25'
set @i=30
while @dt1<'2010-6-21 16:00:00'--这里的@dt1 是null
begin
set @dt1=dateadd(mi,@i,@dt)
set @i=@i+30
end
select @dt1 as sDatetime

请把有疑问的地方,要达到的目的清楚的写出来。
谢谢。
jwdream2008 2010-07-05
  • 打赏
  • 举报
回复
declare @dt datetime,@i int,@dt1 datetime
set @dt='2010-3-25'
set @i=20
set @dt1=dateadd(mi,@i,@dt)
while @dt1<'2010-6-21 16:00:00'
begin
set @i=@i+20
set @dt1=dateadd(mi,@i,@dt)
select @dt1
end
youzhj 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 josy 的回复:]
SQL code

declare @dt datetime,@dt1 datetime
set @dt='2010-3-25'
set @dt1='2010-6-21 16:00:00'
select
dateadd(dd,rn,@dt)
from
(select top 100000 rn=row_number() over(order by getdate()) f……
[/Quote]

我用的是sql2000,谢谢。
youzhj 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 josy 的回复:]
你要输出一个日期列表吗?
[/Quote]我就是想让日期按30分钟循环递增,直到日期小于'2010-6-21 16:00:00',因为我在每次循环后要执行一个操作。
youzhj 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 josy 的回复:]
你要输出一个日期列表吗?
[/Quote]我就是想让日期按30分钟循环递增,直到日期小于'2010-6-21 16:00:00',因为我在每次循环后要执行一个操作。
百年树人 2010-07-05
  • 打赏
  • 举报
回复

declare @dt datetime,@dt1 datetime
set @dt='2010-3-25'
set @dt1='2010-6-21 16:00:00'
select
dateadd(dd,rn,@dt)
from
(select top 100000 rn=row_number() over(order by getdate()) from sys.columns,sys.objects) b
where
dateadd(dd,rn,@dt)<=@dt1
wqmgxj 2010-07-05
  • 打赏
  • 举报
回复
declare @dt datetime,@i int,@dt1 datetime
set @dt='2010-3-25'
set @i=30
while @dt<'2010-6-21 16:00:00'
begin
set @dt1=dateadd(mi,@i,@dt)
--set @i=@i+30
select @dt1 as sDatetime
end
SQL_Hhy 2010-07-05
  • 打赏
  • 举报
回复
declare @dt datetime,@i int,@dt1 datetime
set @dt='2010-3-25'
set @i=30
while @dt1<'2010-6-21 16:00:00'--这里的@dt1 是null
begin
set @dt1=dateadd(mi,@i,@dt)
set @i=@i+30
end
select @dt1 as sDatetime
百年树人 2010-07-05
  • 打赏
  • 举报
回复
你要输出一个日期列表吗?

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧