Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在$model->;中使用UTC_TIMESTAMP();找到易_Php_Mysql_Yii_Timestamp_Utc - Fatal编程技术网

Php 在$model->;中使用UTC_TIMESTAMP();找到易

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

我想知道如何使用Yii中的
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函数传递到查询中(您已经回答了)。谢谢:-)