首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 其他服务器 >

请求查找异常

2012-12-18 
请求查找错误cfquery datasource#dsn# nameq7select media_uuid,media_file_type,media_by_folder

请求查找错误
<cfquery datasource="#dsn#" name="q7">
                        select media_uuid,media_file_type
                              ,media_by_folder_uid,media_by_user_uid
                              ,media_file_size,substring(media_create_datetime,1,10) as media_create_datetime
                        from z_media_file_list
                        where media_file_isdelete = 0
                        and media_by_folder_uid = <cfqueryparam value="#var1.folder_uid#" cfsqltype="cf_sql_varchar">
                        and substring(media_create_datetime,1,10) 
                        in ('#arr_updateTime[1]#','#arr_updateTime[2]#','#arr_updateTime[3]#','#arr_updateTime[4]#','#arr_updateTime[5]#')
                    </cfquery>
                    <cfdump var="#q7#">

<cfloop list="#arraytolist(arr_updateTime)#" index="i">
                    <cfoutput>#i#</cfoutput>
                        <cfquery dbtype="query" name="q7_0">
                            select media_uuid,media_file_type,media_create_datetime
                            from q7 
                            where q7.media_file_type = '0'
                            and q7.media_create_datetime = '#i#'
                        </cfquery>
                        <cfdump var="#q7_0#">
                    </cfloop>
[解决办法]
我说明下:这个程序运行是正常的。但是结果<cfdump var="#q7_0#">是空。正确的话loop内<cfdump var="#q7_0#">一定有值得,我经过数据库对比过的。出错的地方是  and q7.media_create_datetime = '#i#'  这个句话。但这个条件我怎么看都是正确的呀。请高手帮忙找找原因。谢谢



[解决办法]
另外说明:
media_create_datetime在表z_media_file_list内的格式是2008-10-08 10:10:10
substring(media_create_datetime,1,10) as media_create_datetime 因需求,用这个截取之后得到的结果是2008-10-08
arr_updateTime是一个用来存放日期的,格式为2008-10-08这样的。
定义如下:
<cfset arr_updateTime = arraynew(1)>

而<cfloop list="#arraytolist(arr_updateTime)#" index="i"> 
                    <cfoutput>#i# </cfoutput> 
                        <cfquery dbtype="query" name="q7_0"> 
                            select media_uuid,media_file_type,media_create_datetime 
                            from q7 
                            where q7.media_file_type = '0' 
                            and q7.media_create_datetime = '#i#' 
                        </cfquery> 
                        <cfdump var="#q7_0#"> 
                    </cfloop>
这个loop的作用是根据arr_updateTime里面的日期对比q7得到的日期,逐一得到对应的数据。
[解决办法]
表z_media_file_list内的数据大概如下:
media_uuid    media_file_type   media_create_datetime 
0001              0               2008-10-01 10:10:10
0002              1               2008-10-01 12:20:08
0003              0               2008-10-01 18:20:10
0004              0               2008-10-03 09:20:10
0005              2               2008-10-04 16:20:18
0006              0               2008-10-05 15:10:10
0007              1               2008-10-05 19:22:10
0008              0               2008-10-05 22:10:20


0009              0               2008-10-05 23:02:18
0010              0               2008-10-06 10:20:10

我的目的是需要查找出比如2008-10-05这一天,media_file_type=0  的时候。对应的数据。

[解决办法]
and q7.media_create_datetime = '#dateformat(i,"yyyy-mm-dd")#'
[解决办法]
media_create_datetime是varchar(20)類型哦
[解决办法]
謝謝大家關注,那個問題我已經解決了.我用and q7.media_create_datetime like '%#i#%'就正確了.
[解决办法]
謝謝大家關注,那個問題我已經解決了.我用and q7.media_create_datetime like '%#i#%'就正確了.

热点排行