CreatedDateTime是我尝试使用SQL
过滤的表SELECT( * ) COUNT
FROM TABLE
WHERE CreatedDateTime like '2015''-''01''-''29%'
返回0条记录
即使我有两条记录具有以下
的CreatedDateTimeCreatedDateTime
2015-01-29 07:33:25.700
2015-01-29 02:01:54.713
但是以下工作
like '%' + CONVERT(VARCHAR(12), GETDATE(), 0) + '%'
我在这里做错了什么?
答案 0 :(得分:2)
Datetime不是字符串,Wildcard %
用于在字符串值中查找模式。
要获取特定日期的所有值,您可以简单地将其投射到日期,这将忽略时间部分并将带回该特定日期的所有记录。有点像......
SELECT COUNT(*)
FROM TABLE
WHERE CAST(CreatedDateTime AS DATE) = '20150129' --<-- use ASNI YYYYMMDD
还始终坚持ANSI标准,将保护您免受环境特定问题的影响。
答案 1 :(得分:2)
假设它被存储为正确的日期时间,您可以删除时间部分并使用等价,因为通配符匹配用于字符串:
SELECT COUNT(*)
FROM TABLE
WHERE CAST(CreatedDateTime AS DATE) = '2015-01-29'
答案 2 :(得分:1)
试试这个..
SELECT( * ) COUNT
FROM TABLE
WHERE (DATEPART(yy, CreatedDateTime) = 2015
AND DATEPART(mm, CreatedDateTime) = 01
AND DATEPART(dd, CreatedDateTime) = 29)