如果您只想匹配日期部分,那么有很多选项。
1) 参数PEndDate和PStartDate可以使用Date类型来取消时间部分
2) 匹配时可以使用Convert方法只获取参数的日期部分。CONVERT (DATE, @PEndDate) OR CONVERT(varchar,@PEndDate,103)
3) 使用 DateTime 函数仅从 DateTime 获取日期部分
ATEADD(dd, 0,
DATEDIFF(dd, 0, @PEndDate))
4) 使用 FLOOR 和 CAST 函数仅从 DateTime 获取日期部分
CAST( -- Convert the integer to DATE
FLOOR(-- Get largest Integer less than or equal to the decimal value
CAST(GETDATE() AS DECIMAL(12, 5)) -- Convert DATETIME to DECIMAL)
AS DATETIME) 'Date Part Only'
5) 使用 DATEPART 和 CONVERT 函数仅从 DateTime 获取日期部分
CONVERT(VARCHAR(4),DATEPART(YEAR, @GETDATE))
+ '/'+ CONVERT(VARCHAR(2),DATEPART(MONTH, @GETDATE))
+ '/' + CONVERT(VARCHAR(2),DATEPART(DAY, @GETDATE))
'Date Part Only'
使用适合你的任何一种方法,你会觉得很有趣。
更新
正如您提到的,您需要将时间部分与日期一起发送到00:00,以便您可以尝试,
SELECT CAST( convert(varchar(10),GETDATE(),112) AS DATETIME)
--This will give you 2015-02-27 00:00:00.000
SELECT DATEADD(ms,-3, DATEADD(day, DATEDIFF(day,0,GETDATE())+1,0))
--This will give you end of days time 2015-02-27 23:59:59.997
SELECT CONVERT(nvarchar,getdate(),103) + ' 12:59:59 PM'
--This will give you custom time 27/02/2015 12:59:59 PM