【发布时间】:2023-04-01 14:39:02
【问题描述】:
我有点放屁...按日期列出可用插槽的结果。它被设置为提前一周显示...但我希望它在早上 8 点之后显示最后一个结果,而不是在每晚午夜显示...有没有办法做到这一点?
下面的代码可以很好地显示结果,只是在每晚午夜显示它 - 我希望它在早上 8 点显示下一个结果......
<cfset datelist = #DateAdd("d", tydef.numdays, todaydate)#>
<cfquery name="list" datasource="#ds#">
select * from shindates
where sdate >= #createODBCDate(todaydate)#
and stime >= #createODBCDateTime(timehr)#
and sdate <= #createODBCDateTime(datelist)#
and typeid = '#ty.typeid#'
order by sdate, stime
</cfquery>
K - 我想我已经使用 cfif 对其进行了排序并切断了最后一天 - 然后在上午 9 点之后自行搜索最后一天 - 有效......但是如果有人有任何代码清理建议 - 我会接受他们……
这在下面有效
<cfset datelist = #DateAdd("d", tydef.numdays, todaydate)#>
<cfset sdatelist = #DateAdd("d", -1, datelist)#>
<cfset stime = CreateTime(9,0,0)>
<cfquery name="shinny" datasource="#ds#">
select * from shindates
where sdate >= <cfqueryparam cfsqltype="cf_sql_date" value="#todaydate#">
and stime >= <cfqueryparam cfsqltype="cf_sql_time" value="#timehr#">
and sdate <= <cfqueryparam cfsqltype="cf_sql_date" value="#sdatelist#">
and typeid = '#ty.typeid#'
order by sdate, stime
</cfquery>
<cfif #DatePart("h", timenow)# GTE #DatePart("h", stime)#>
<cfquery name="lastday" datasource="#ds#">
select * from shindates
where sdate >= <cfqueryparam cfsqltype="cf_sql_date" value="#datelist#">
and sdate <= <cfqueryparam cfsqltype="cf_sql_date" value="#datelist#">
and typeid = '#ty.typeid#'
order by sdate, stime
</cfquery>
</cfif>
【问题讨论】:
-
三个变量的值是多少?
-
相关列的数据类型是什么?你使用的是什么数据库?您还应该将该 SQL 参数化,而不是将您的值硬编码到您的语句中。你真的还在使用 ODBC 吗?
-
Todaydate - 是今天的日期,timehr 是今天的时间(当前时间)和 datelist - 是所需的天数(7) - 所以它会在今天的日期之后搜索任何内容,小时之后(确实不显示过期的)和接下来的 7 天......但我希望在上午 8 点之后显示最后一个 - 而不是在午夜
-
这个问题的描述还是有点混乱......这将有助于发布一个小的数据转储。即查询中实际日期/时间的样本是什么,而您期望是什么?
标签: sql coldfusion coldfusion-9 cfml