First, preface
Because my company is going to do financial settlement. The day before 0:00:00 to 23:59:59 data, using the dynamic splicing SQL statement
We need to understand that declaring datetime and date gets a different time format, so it's helpful to get the time period data we need
II. test data display (see Print results yourself)
DECLARE @startDateDATE;DECLARE @startDateTime DATETIME;DECLARE @endDateTime DATETIME ;SET @startDate=GETDATE();SELECT @startDateTime=DATEADD( Day,-1,@startDate); SET @endDateTime=DATEADD(Second,-1,CONVERT(DATETIME,@startDate))Print(@startDateTime)Print(CONVERT(DATETIME,@startDate))Print(@startDate)Print(@endDateTime)
III. Dynamic SQL statements
DECLARE @startDateDATE;DECLARE @startDateTime DATETIME;DECLARE @endDateTime DATETIME ;SET @startDate=GETDATE();SELECT @startDateTime=DATEADD( Day,-1,@startDate); SET @endDateTime=DATEADD(Second,-1,CONVERT(DATETIME,@startDate))Declare @sql nvarchar( +)Set @sql='SELECT * from E_orderslogistics where forecasttime>=" "+cast(ISNULL(@startDateTime,"') as nvarchar( -))+" "and forecasttime<" "+CAST(ISNULL(@endDateTime,"') as nvarchar( -))+" '"Print(@sql)exec(@sql)
If you want to reprint, please indicate the source, thank you for your support ~
SQL Gets the day before 0:00:00 to 23:59:59 data