表tab日期 2007-02-27
2007-02-28
2007-02-29
2007-02-30
2007-02-31
2007-03-01
2007-03-02想得到加1天的日期
结果为:2007-02-28
2007-02-29
2007-02-30
2007-02-31
2007-03-01
2007-03-02
2007-03-03select Convert(varchar(10),dateadd(day,1,日期),120) as 日期 from tab where 日期>='2007-02-27' and 日期<='2007-03-02'
出现
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。这个语句该怎么写?谢谢!
2007-02-28
2007-02-29
2007-02-30
2007-02-31
2007-03-01
2007-03-02想得到加1天的日期
结果为:2007-02-28
2007-02-29
2007-02-30
2007-02-31
2007-03-01
2007-03-02
2007-03-03select Convert(varchar(10),dateadd(day,1,日期),120) as 日期 from tab where 日期>='2007-02-27' and 日期<='2007-03-02'
出现
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。这个语句该怎么写?谢谢!
insert into tb values('2007-02-27')
insert into tb values('2007-02-28')
insert into tb values('2007-03-01')
insert into tb values('2007-03-02')
goselect dateadd(day , 1 , 日期) as 日期 from tb where 日期>='2007-02-27' and 日期 <='2007-03-02'
drop table tb/*
日期
------------------------------------------------------
2007-02-28 00:00:00.000
2007-03-01 00:00:00.000
2007-03-02 00:00:00.000
2007-03-03 00:00:00.000(所影响的行数为 4 行)
*/
结果可想而知。
dateadd(d,1,日期字段)Select dateadd(m,2,dateadd(d, -datepart(d,getdate()),getdate()))
------------------------
2009-02-28 12:52:02.263Select dateadd(d,1, dateadd(m,2,dateadd(d, -datepart(d,getdate()),getdate())))
------------------------
2009-03-01 12:52:02.263
select dateadd(dd,1,getdate())
if object_id('tb') is not null
drop table tb
go
create table tb(dt datetime)
go
insert into tb (dt) values ('2007-02-27')
insert into tb (dt) values ('2007-02-28')
insert into tb (dt) values ('2007-02-28')
insert into tb (dt) values ('2007-03-01')
insert into tb (dt) values ('2007-03-02')
go
select dateadd(dd,1,dt) from tb
select dt+1 from tb