0

TypoScriptselectの日付を比較したい。これが私が持っているものです(私がwere節にコメントしたことに注意してください):

lib.my_val = CONTENT
lib.my_val {
  select {
    pidInList = 100000
    max = 1
    #where = effective_date < CURDATE()
    #where = TIMESTAMP(effective_date) < NOW()
    orderBy = effective_date DESC
  }
  table = tx_my_table
  renderObj = COA
  renderObj {
    5 = TEXT
    5{
      field = my_field
      wrap = <span>|</span>
    }
    [...]
  }
}

これは行を返します。

静的な日付または変数を使用して、可能な限りwhereステートメントを追加しようとしましたが、成功しませんでした。where句についての私の理解は、後のすべてがSQLクエリのように=ダンプされるということです。しかし、私は何かを逃したようです。

基本的に、TypoScriptでこれに似たSQLクエリを生成する必要があります。

SELECT * FROM tx_my_table WHERE effective_date < NOW() ORDER BY effective_date DESC LIMIT 1;

これは単純なはずです。過去に誰かがこれをしたことがありますか?

ありがとう!

4

1 に答える 1

3

TypoScriptは問題ないようです。

  • SQLクエリをMySQLに直接入力するとどうなりますか?
  • コードでは、のレコードが1つだけ選択されていることに注意してくださいpid=100000
  • これを試しましたか:

-

lib.my_val {  
       select {  
        pidInList = 100000  
        max = 1  
        where = UNIX_TIMESTAMP(effective_date) < UNIX_TIMESTAMP()  
        orderBy = UNIX_TIMESTAMP(effective_date) DESC  
      }  
      table = tx_my_table  
    }

TYPO3 Wiki on select

于 2012-11-02T18:40:23.780 に答える