日期:2014-05-17  浏览次数:20495 次

指定日期作为查询条件的问题
我有一个MySchool数据库,里面有result表,含有ExamdDate字段(smalldatetime类型)
GQ-QiaoYing数据库,里面有HistoryDat表,含有Date_Time字段(smalldatetime类型)

我想查询2009-09-13日的result数据
和2011-07-05日的HistoryData数据

用的是下面的语句,当然是分别在当下的数据库查询下进行

1、select * from Result WHERE ExamDate='2009-9-13'

2、SELECT * FROM HistoryData WHERE Date_Time='2011-07-05'

两张表在这两个日期都是存在数据的,日期是YYYY-MM-DD HH:MM:SS型
查询执行后,问题发生了:

1、从result表中查询到了相应日期的记录
2、从HistoryData表中查询不到记录,但是也没有错误发生

以上两条语句分别在use MySchool和use GQ-QiaoYing下进行

虚心请教各位,这是什么原因,为什么相同的语句却得到了不同的结果?

谢谢

------解决方案--------------------
LZ说日期是YYYY-MM-DD HH:MM:SS型,而你查询条件又是YYYY-MM-DD,
这样会有问题的,建议用convert(varchar(10),GETDATE(),120)转化为YYYY-MM-DD
------解决方案--------------------
1、select * from MySchool.dbo.Result WHERE ExamDate='2009-9-13'

2、SELECT * FROM GQ-QiaoYing.dbo.HistoryData WHERE Date_Time='2011-07-05'
------解决方案--------------------
建议convert
------解决方案--------------------
建议between and,因为时间会有时分秒,查询某一区间的比较实用
------解决方案--------------------
where convert(varchar(10),c_date,120) = '2008-04-17'
注意convert之后是varchar,也就是字符串类型,所以要用 '2008-4-17'
------解决方案--------------------
探讨

制定天不行吗?