我今天的日期有10行,但基于日期的选择语句似乎不起作用....
SELECT Id,WirelessId,RegNo,DriverName1,MobileNo1,DriverName2,MobileNo1 from
DailySchedule where IsDeleted=0 and CreatedDate='2010-05-28'
任何建议......
答案 0 :(得分:7)
只有分配给他们的日期是今天午夜。这可能更好:
CreatedDate BETWEEN '2010-05-28 00:00' AND '2010-05-29 00:00'
答案 1 :(得分:1)
如果您想要5月28日的所有参赛作品,我会
and CreatedDate >='20100528'
and CreatedDate < '20100529'
注意安全的ISO格式(YYYYMMDD)没有破折号
另请查看How Does Between Work With Dates In SQL Server?,了解为什么之间无法提供您想要的所有结果
答案 2 :(得分:0)
假设CreatedDate是日期时间或日期,我看不出where子句的语法有什么问题。也许这些列的IsDeleted字段实际上是NULL? (无论如何,或者非零。)
编辑:Dave说的话,或DATE(CreatedDate)='2010-05-28'
答案 3 :(得分:0)
我会检查CreatedDate列的类型,并确保正在传递的字符串正确转换为日期。
当你说'有'10行时,是在视觉上确认还是在控制台中执行查询?
答案 4 :(得分:0)
没有足够的信息继续,但我怀疑你的日期有一个时间组件,所以不完全匹配字符串。
尝试使用:
datediff(day, CreatedDate, '28-may-2010')) = 0
答案 5 :(得分:0)
SELECT Id,WirelessId,RegNo,DriverName1,MobileNo1,DriverName2,MobileNo1 from
DailySchedule where IsDeleted=0 and date_format(CreatedDate, "%Y-%m-%d")='2010-05-28'
答案 6 :(得分:0)
这也应该有用
select Id,
WirelessId,
RegNo,
DriverName1,
MobileNo1,
DriverName2,
MobileNo1
from DailySchedule
where IsDeleted=0
and CONVERT(varchar,CreatedDate,101) ='05/28/2010'