34,873
社区成员
发帖
与我相关
我的任务
分享
select convert(datetime,datename(year,dateadd(day,-1,getdate()))+'-'+datename(month,dateadd(day,-1,getdate()))+'-'+datename(day,dateadd(day,-1,getdate()))+' 23:59:00',121)
convert(datetime,datename(year,dateadd(day,-1,getdate()))+'-'+datename(month,dateadd(day,-1,getdate()))+'-'+datename(day,dateadd(day,-1,getdate())),121)
这个的结果是什么,格式如何?
/*
纯SQL语法
楼主希望时间是 00:00:00 ,不加时间部分默认就是该值
*/
select * from business where b_startdate>=convert(datetime,datename(year,dateadd(day,-1,getdate()))+'-'+datename(month,dateadd(day,-1,getdate()))+'-'+datename(day,dateadd(day,-1,getdate())),121)
"select * from business where b_startdate>=convert(datetime,'" & Format(DateAdd("d", -2, Now()), "yyyy-MM-dd 00:00:00") & "',121)"
select * from business where b_startdate>=convert(datetime,'" & Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00") & "',121)code]
这句出现从字符串转换为 datetime 时发生语法错误。该怎么改?
[/Quote]
你可能用的是VB访问SQL的,关键问题出现在
Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00")
其中DATEADD的用法是SQL的用法,GETDATE()是SQL的函数,而Format是VB的函数
改成下面的试试
[code=VB]
"select * from business where b_startdate>=convert(datetime,'" & Format(DateAdd("d", -2, Now()), "yyyy-MM-dd 00:00:00") & "',121)"
--TRY
select * from business where b_startdate>=convert(datetime,'" & Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00") & "',121)
AND isdate('" & Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00") & "')=1select * from business where b_startdate >= DATEADD(day,-1,GETDATE())select * from business where b_startdate>=convert(datetime,'" & Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00") & "',121)
where isdate('" & Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00") & "')=1select * from business where b_startdate>=convert(varchar(10),'" & Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00") & "',120)