你的位置:首页 > 数据库

[数据库]SQL获取前一天0:00:00至23:59:59数据


一、前言

因为我公司要做财务结算前一天0:00:00至23:59:59的数据,利用到动态拼接SQL语句

我们需要明白声明DateTime 和 Date 获取的时间格式是不一样的,所以通过此计算有利于得到我们需要的时间段数据

二、测试数据展示(自己看print结果)

DECLARE @startDate DATE;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)

 

三、动态SQL语句

DECLARE @startDate DATE;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(1000)set @sql='select * from E_OrdersLogistics where ForecastTime>='''+cast(ISNULL(@startDateTime,'') as nvarchar(100)) +''' and ForecastTime<'''+CAST(ISNULL(@endDateTime,'') as nvarchar(100))+''''print(@sql)exec(@sql)

如需转载,请注明出处,谢谢大家支持~