1

Magento 1.6以降を対象とした拡張機能に取り組んでおり、MySQL固有の構文ではなく一般的なデータベース構文を使用したいと考えています。一連の注文を選択するために使用できるタイムスタンプを格納するための単純なテーブルが必要です。

lib / Varien/Dbとlib/Zend / Dbを調べましたが、表示される日付関数はMySQL固有のようです。

lib/Varien/Db/Adapter/Mysqli.php:    public function convertDate($date)
lib/Varien/Db/Adapter/Pdo/Mysql.php: public function convertDate($date)

MySQLでは次のように書きます。

INSERT INTO `marketing_services` SET `last_sent` = NOW(); 

主要なRDBMSシステムは、日付関数の語彙と実装が異なることを知っていますが、Magentoには、この日付関数と他の日付関数の抽象化がありますか?そうでない場合は、どうすればよいですか?

4

2 に答える 2

2

これを使って

/** @var $adapter Varien_Db_Adapter_Interface **/    
$now = $adapter->formatDate(Varien_Date::now())
// or
$nowDateOnlyWithoutTime = $adapter->formatDate(Varien_Date::now(), false)
于 2012-12-12T09:43:09.770 に答える
1

これはZendFrameworkコードであり、MySqlを使用するMagentoでは特別なことではありません。 ソースコード

入れる:

$adapter->insert('marketing_services', array('last_sent'=>new Zend_Db_Expr('NOW()'));

アップデート:

$adapter->update('marketing_services', array('last_sent'=>new Zend_Db_Expr('NOW()'));
于 2012-12-11T21:55:02.750 に答える