1

NOW()挿入クエリで使用する、日付を含むさまざまな設定を格納するテキスト型の列を持つテーブルがあります。

このテーブルから、この列が特定の日付 (例: 2012-09-19) より前のすべての行を取得したいと考えています。

経由で比較するDATE(date_column)<DATE(NOW())のは簡単ですが、入力文字列の日付形式が異なる可能性があるため、NOW() の代わりに特定の日付を渡す方法がわかりません。

サンプルコードは次のとおりです。

INSERT INTO table (date_column) VALUES (NOW())

そして選択するとき:

SELECT * FROM table WHERE DATE(date_column)<DATE('2012-09-19');

編集: 上記のコードは実際に動作します。最初は日付の周りの引用符がありませんでした。


スクリプトを使用してjsfのコマンドボタンを自動クリックする方法

次の JSF ページで、ページの読み込み時に commandButton アクション リスナーを実行する必要がある状況があります。

        <?xml version='1.0' encoding='UTF-8'?>
        <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
         xmlns:f="http://java.sun.com/jsf/core"
         xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
         xmlns:trh="http://myfaces.apache.org/trinidad/html">
        <jsp:directive.page contentType="text/html;charset=UTF-8"/>

        <f:view>

       <af:document id="d1" partialTriggers="pt1">
       <af:resource type="javascript">  
       function callCustomButton(){
       var button =AdfPage.PAGE.findComponentByAbsoluteId("cbCustomFields");
       ActionEvent.queue(button,true);
       }
       </af:resource>



     <af:clientListener method="callCustomButton" type="load"/>

      <af:form id="f1">
     <af:pageTemplate viewId="/ESOPM_Base_Template.jspx" id="pt1">



    <f:facet name="main_content">

    <af:decorativeBox id="db1" theme="medium">
        <f:facet name="top"/>
        <f:facet name="center">
        <af:panelGroupLayout layout="scroll" id="pgl2"> 
        <trh:tableLayout id="tblUpload" cellPadding="3" cellSpacing="3"  halign="center" inlineStyle="font-size:1.2em; font-weight:bold; font-family:helvetica,sans-serif;">
                <trh:rowLayout id="rl1">

                    <trh:cellFormat id="cf1">            
                        <af:panelGroupLayout layout="horizontal" id="pgl3">

                   <af:commandButton text="Custom Fields"                       

                  actionListener="#{EditProperties.generateCustomAttributeFields}" 
                  id="cbCustomFields"  partialSubmit="true"  visible="true"/>
                        </af:panelGroupLayout>
                    </trh:cellFormat>
                </trh:rowLayout>

                  </trh:cellFormat>
              </trh:rowLayout>

        </trh:tableLayout>
        </af:panelGroupLayout>
        </f:facet>
        </af:decorativeBox>
        </f:facet>
</af:pageTemplate>
</af:form>
</af:document>
</f:view>

</jsp:root>

コマンドボタンは「カスタムフィールド」であり、クライアントリスナーを介してページで使用したjavascriptで呼び出そうとしています。ただし、ユーザーがこのページをロードすると、ボタンはクリックされず、そのアクション リスナー操作は実行されません。助けてください。

4

2 に答える 2

0

date_column が本当に DATE 型である場合、DATE() を実行する必要はありません。

また、date_column で DATE() を実行すると、MySQL がインデックスを使用できなくなるため、テーブル スキャンを実行することに注意してください。

試す:

WHERE date_column < '2012-09-19'
于 2012-09-06T02:10:05.750 に答える
0

列タイプの周りに関数を配置しないでください ( WHERE FUNCTION(col) ...)。これにより、パフォーマンスが低下します。ドメインの整合性を持つテーブルが必要です。つまり、日付を格納している場合、それはdate型です。

に一致するレコードを選択するにはdate、YYYY-MM-DD の日付を引用符で囲みます。

SELECT * FROM table WHERE date_column < '2012-09-19'
于 2012-09-06T02:29:40.720 に答える