日期:2014-05-18  浏览次数:20536 次

SQL语句求助,实现立即给分啊!!!!!
我数据库里有 '记录时间,uconvp,convp '三个列,那么想选取uconvp,convp,而时间限定在和 '记录时间 '是同一天.但是 '记录时间 '是每小时一条,所以选出来应该是24条,那么这句SQL语句怎么写啊?
我自己写了N多句了都不好用,比如
dim   strSQL   as   string
strSQL   =   "select   "   &   "uconvp,convp   from   DayTable   where   datediff(DateInterval.Day,   Convert.ToDateTime( '   &   记录时间   &   ').Date, "   &   calDateTypedIn.SelectionEnd   &   ")=0 "
            calDateTypedIn.SelectionEnd   是月历控件所确定的时间.

其实是想达到下面的效果,只是这样实现的内存消耗太多,慢
strSQL   =   "select   记录时间,uconvp,convp   from   DayTable "
                                中间为调库,然后把内容给了dtlMyTable
                                DataGrid1.DataSource   =   dtlMyTable       '显示出来,只为了验证
                                For   Each   drRow   As   DataRow   In   dtlMyTable.Rows
                                        If   DateDiff(DateInterval.Day,   Convert.ToDateTime(drRow.Item( "记录时间 ")).Date,   calDateTypedIn.SelectionEnd)   =   0   Then
                                                MsgBox(i)
                                                MsgBox(drRow.Item( "记录时间 "))
                                                i   +=   1
                                        End   If
                                Next


------解决方案--------------------
DATEDIFF(Day,2006-8-9,DayTable金元酒店.记录时间)

--> 改为(日期要用 '括起来, 只要日期格式是合法的, datediff 会将字符转换为日期进行计算):
DATEDIFF(Day, '2006-8-9 ',DayTable金元酒店.记录时间)
------解决方案--------------------
mvpme82(大笨熊) ( ) 信誉:100 Blog 加为好友 2007-06-11 11:01:38 得分: 0


"SELECT 记录时间,uconvp,convp FROM DayTable金元酒店 WHERE NOT EXISTS(SELECT uconvp,convp FROM DayTable WHERE uconvp = DayTable.uconvp AND convp = DayTable金元酒店.convp and DATEDIFF(DateInterval.Day, '2006-6-21 ',DayTable.记录时间) = 0 "

生成的SQL语句就是这样了,提示在 '0 '附近有错误,咳~,怎么办呢?

--------------
少了括號

"SELECT 记录时间,uconvp,convp FROM DayTable金元酒店 WHERE NOT EXISTS(SELECT uconvp,convp FROM DayTable WHERE uconvp = DayTable.uconvp AND convp = DayTable金元酒店.convp and DATEDIFF(DateInterval.Day, '2006-6-21 ',DayTable.记录时间) = 0) "


0後面有個括號