[code=SQL]select * from business where b_startdate>=convert(datetime,'" & Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00") & "',121)code]
这句出现从字符串转换为 datetime 时发生语法错误。该怎么改?

解决方案 »

  1.   

    select * from business where b_startdate>=convert(varchar(10),'" & Format(DATEADD(day,-1,GETDATE()), "yyyy-MM-dd 00:00:00") & "',120)
      

  2.   

    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") & "')=1
      

  3.   

    select * from business where b_startdate >= DATEADD(day,-1,GETDATE())
      

  4.   

    --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") & "')=1
      

  5.   

    同样是取当天时间,有必要format后拼成sql吗?直接用sql的不更好select * from business 
    where b_startdate>=DATEADD(day,-1,GETDATE())
      

  6.   

    我要取前一天 b_startdate>="yyyy-MM-dd 00:00:00" and b_enddate<=""yyyy-MM-dd 23:59:00""
      

  7.   


    DECLARE @dt datetime
    SET @dt=GETDATE()--1.短日期格式:yyyy-m-d
    SELECT REPLACE(CONVERT(varchar(10),@dt,120),N'-0','-')--2.长日期格式:yyyy年mm月dd日 
    --A. 方法1 
    SELECT STUFF(STUFF(CONVERT(char(8),@dt,112),5,0,N'年'),8,0,N'月')+N'日'
    --B. 方法2 
    SELECT DATENAME(Year,@dt)+N'年'+DATENAME(Month,@dt)+N'月'+DATENAME(Day,@dt)+N'日'--3.长日期格式:yyyy年m月d日
    SELECT DATENAME(Year,@dt)+N'年'+CAST(DATEPART(Month,@dt) AS varchar)+N'月'+DATENAME(Day,@dt)+N'日'--4.完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm
    SELECT CONVERT(char(11),@dt,120)+CONVERT(char(12),@dt,114)