Php 在$model->;中使用UTC_TIMESTAMP();找到易
我想知道如何使用Yii中的Php 在$model->;中使用UTC_TIMESTAMP();找到易,php,mysql,yii,timestamp,utc,Php,Mysql,Yii,Timestamp,Utc,我想知道如何使用Yii中的CActiveRecord实现这一点: 从id为'12345'的用户中选择姓名、姓氏、UTC时间戳(上次查看) 我已经用这个方法编写了大部分代码:$model->findAll(…),但是我无法将我最喜欢的MySQL时间戳函数合并到查询中 我需要它来使用PHP中的date\u default\u timezone\u set()设置时区 我的时间戳存储在mysql表中的TIMESTAMP格式中 编辑 我不想从PHP将时区传递给MySQL。我使用CURRENT\u tim
CActiveRecord
实现这一点:
从id为'12345'的用户中选择姓名、姓氏、UTC时间戳(上次查看)
我已经用这个方法编写了大部分代码:$model->findAll(…)
,但是我无法将我最喜欢的MySQL时间戳函数合并到查询中
我需要它来使用PHP中的date\u default\u timezone\u set()
设置时区
我的时间戳存储在mysql表中的TIMESTAMP
格式中
编辑
我不想从PHP将时区传递给MySQL。我使用CURRENT\u timestamp
作为默认值存储时间戳。我唯一想使用date\u default\u timezone\u set()
的时间是我想在用户时区中显示此日期的时间
对不起,如果我不够清楚,我感谢您的输入:-)在您最近的评论之后,是的,有一种方法可以通过。如果选中,则可以接受2个参数,一个用于条件或条件,另一个用于将参数绑定到生成的sql 我们可以使用第一个参数来传递条件并使用 指sql语句的select子句 因此,我们可以:
$dbCriteria=new CDbCriteria;
$dbCriteria->select='name, surname, UTC_TIMESTAMP() as some_alias'; // we need the alias so that the timestamp is easily accessible
// you can also pass * if you need to access all the values of the table, alongwith the timestamp, like '*, UTC_TIMESTAMP() as some_alias'
$model->findAll($dbCriteria);
当然,要使用某个_别名,您需要在模型中声明它:
public $some_alias; // this will be automatically be populated by the alias, when you query the db, in findAll
在你最近的评论之后,是的,有一种方法可以通过。如果选中,则可以接受2个参数,一个用于条件或条件,另一个用于将参数绑定到生成的sql 我们可以使用第一个参数来传递条件并使用 指sql语句的select子句 因此,我们可以:
$dbCriteria=new CDbCriteria;
$dbCriteria->select='name, surname, UTC_TIMESTAMP() as some_alias'; // we need the alias so that the timestamp is easily accessible
// you can also pass * if you need to access all the values of the table, alongwith the timestamp, like '*, UTC_TIMESTAMP() as some_alias'
$model->findAll($dbCriteria);
当然,要使用某个_别名,您需要在模型中声明它:
public $some_alias; // this will be automatically be populated by the alias, when you query the db, in findAll
这里有些问题,您是如何认为PHP时区将被发送到MySQL的?查看findAllBySql会对您有所帮助。感谢您的回复,但我不明白您所说的“您认为PHP时区将如何发送到MySQL?”是什么意思。我确实看过findAllBySql,但这需要我将所有的
$model->findAll()
转换成SQL语句。我想知道的是,是否有办法将DATETIME
函数传递到$model->findAll
?这里有些问题,您是如何认为PHP时区将被发送到MySQL的?查看findAllBySql会对您有所帮助。感谢您的回复,但我不明白您所说的“您认为PHP时区将如何发送到MySQL?”是什么意思。我确实看过findAllBySql,但这需要我将所有的$model->findAll()
转换成SQL语句。我想知道的是是否有办法将DATETIME
函数传递到$model->findAll
?谢谢!我正要回答我自己的问题。经过进一步调查,我意识到我可以将select子句传递给模型,在模型中我定义了如下关系:'users'=>array(self::HAS_ONE,'users','user_id','select'=>'user_id,firstname,lastname,UNIX_TIMESTAMP(usr_last_seen)AS usr_last_seen'),
但我认为最终,他们也会做同样的事情。所以对你来说+1!!对于UTC\u时间戳的问题,我深表歉意。实际上,我在寻找UNIX\u TIMESTAMP
,但最后的问题是如何将MySQL函数传递到查询中(您已经回答了)。谢谢:-)谢谢!我正要回答我自己的问题。经过进一步调查,我意识到我可以将select子句传递给模型,在模型中我定义了如下关系:'users'=>array(self::HAS_ONE,'users','user_id','select'=>'user_id,firstname,lastname,UNIX_TIMESTAMP(usr_last_seen)AS usr_last_seen'),
但我认为最终,他们也会做同样的事情。所以对你来说+1!!对于UTC\u时间戳的问题,我深表歉意。实际上,我在寻找UNIX\u TIMESTAMP
,但最后的问题是如何将MySQL函数传递到查询中(您已经回答了)。谢谢:-)