特定のユーザのレコードの完全なセットから特定の年と月に該当するレコードを取得しようとしています。まず、itemdateのフィールドはMySqlタイプの日時です(例:2016-08-15 20:00:25)。ユーザーのための記録の4行がありますクエリ内のColdfusion MySQLクエリ
2016-08-15 20:00:25
2015-06-01 20:25:05
2016-08-15 20:26:00
2016-08-15 23:30:35
特定のユーザーのためにこれらのレコードはによって取得されています
<cfset thisyear = #Year(Now())#>
<cfset thismonth = #Month(Now())#>
:現在の年と月がによって決定され
<cfquery datasource="userdatbase"name="reportlist">
select itemid, itemdate, itemvalue
from itemlib
where userid = '#currentuserid#'
</cfquery>
今すぐ元のクエリをフィルタリングし、現在の年と月のクエリのみを取得します。
<cfquery dbtype="query" name="detail">
select itemid, itemdate, itemvalue
from reportlist
where year(itemdate) = #thisyear#
and month(itemdate) = #thismonth#
</cfquery>
次のエラーが発生します:
エラーデータベースクエリの実行中です。
クエリクエリの構文エラー。 「年が発生しました の1予想される不正な条件式、[のような|ヌル|中| |との比較]条件、
私が代わりにこれを行うことを試みています。
を取り払うます<cfquery dbtype="query" name="detail">
select itemid, itemdate, itemvalue
from reportlist
where #year(reportlist.itemdate)# = #thisyear#
and #month(reportlist.itemdate)# = #thismonth#
</cfquery>
しかし、私はの詳細クエリの4つのレコードをすべて取得しました。私は2015-06-01 20:25:05レコードを選択するとは思っていません。私はこれに頭を悩ましています。何か助けていただければ幸いです。ありがとうございます。
はわから月/年機能は、使用している接続/ドライバの種類かかわらず、あなたはサポートされていますか?月/年がMySQLでサポートされているように見えるので、エンジンがクエリの解析に問題があるとは思われません。https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions .html#function_month – xQbert
*しかし、私はすべての4行を持っている*あなたはそれがだと思う何をSQLクエリが行っていないので...'WHERE 1 = 1'のような2つのリテラル値の比較をしています。クエリのすべての行に対して常に真(または偽)です。 – Leigh
元のデータベースクエリに日付範囲を設定すると、ページはどうなりますか? –