Я использовал бы dayofyear функцию datepart:
Select *
from mytable
where datepart(dy,date1) = datepart(dy,date2)
and
year(date1) = year(date2) --assuming you want the same year too
Посмотрите datepart ссылку здесь .
Атрибут фильтра бесполезен, если вы пытаетесь сделать исключение. Показательный пример: буквально вчера я хотел использовать cfdirectory для захвата всех подкаталогов, но EXLCUDE любой каталог, который начинается с точки "." так что я мог исключить такие вещи, как ".svn" и ".git". Излишне говорить, что я поискал повсюду и не смог найти ответа.
В конце концов, я просто использовал некоторую условную логику в своем цикле:
<cfloop query="mydir">
<cfif left(name, 1) neq ".">
<!--- do some code --->
</cfif>
</cfloop>
Что выполнило свою работу. Конечно, я мог бы использовать QoQ, но для меня добавление всех этих накладных расходов для фильтрации каталогов, начинающихся с точки, казалось глупым.
Суть в том, что да, мы облажались, когда дело доходит до фильтрации исключения с помощью cfdirectory , но нет причин, по которым вы не можете использовать свое воображение и немного кода для получения желаемых результатов.
Вы можете создать собственный тег, который запускал каталог CF, а затем перебирал результаты (как у вас), создавая новый запрос или структуру с вашими результатами. Это сделало бы его немного более пригодным для повторного использования в других ситуаций.
Это может быть возможно сделать в java-объекте с ..
CreateObject("java", "java.io.File");
.. и фильтром имени файла
Лично я думаю, вам будет лучше просто использовать запрос запросов.
Нет, невозможно исключить файлы только с помощью cfdirectory . Атрибут filter только указывает, какие файлы включать, с помощью подстановочных знаков в стиле DOS ( *
и ?
).
Самым простым решением, вероятно, является фильтрация постфактум с помощью cfquery.
<cfquery name="qryFiles" dbtype="query">
SELECT * FROM qryFiles
WHERE name not like '%.cfm'
</cfquery>
I am pretty sure the ! operator will not work in the filter parameter.
I don't see a way of getting around doing query of query or looping through the query with a cfoutput/cfloop and then checking the value of each file name with a cfif/cfcase statement to see if you want it to show up.