在SQL Server中过滤日期rand

时间:2015-10-21 09:28:41

标签: sql sql-server sql-server-2008

我有一个包含MobileNoRequestTime的数据表,有两行包含移动设备号和日期。我想用当前日期获取所有记录

SELECT * 
FROM Requester 
WHERE (Convert(datetime, RequestTime, 103)) = GETDATE()

我将datetime作为字符串,所以我需要在SQL中将其转换为DateTime,但结果仍为null

查看SQL Server中的代码和结果

enter image description here

3 个答案:

答案 0 :(得分:0)

您为转化选择的日期时间样式是正确的,但这不起作用,因为GetDate()还为您提供当前时间,而您的存储日期不是。因此,平等不可能是真的。

您需要截断比较日期的时间才能使其有效。

答案 1 :(得分:0)

SELECT CONVERT(DATETIME, '21/10/2015', 103)返回:2015-10-20 00:00:000.000

SELECT GETDATE()返回:2015-10-20 16:42:01.154 - 获取当前时间

你可以尝试这样的代码:

WHERE CONVERT(DATETIME, RequestTime, 103) = CONVERT(DATETIME, CAST(GETDATE() AS DATE), 103)

答案 2 :(得分:0)

请试试这个:

SELECT REQUESTERMOBILE,REQUESTTIME
FROM REQUESTER
WHERE CONVERT(DATE,CONVERT(DATETIME,REQUESTTIME),103) = CONVERT(DATE,GETDATE(),103)