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

这是 Zend 框架代码,在 Magento 和 MySql 中没什么特别的。 源代码

插入:

$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 回答