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後面有個括號