yii2.0使用AR查詢,將資料庫時間戳格式化
阿新 • • 發佈:2019-01-24
資料庫一般來說,存的時間為uninx時間戳,根據需求,可能會將查詢出來的日期進行格式化
1、如果結果集只有一條,則可在查詢後,使用date函式轉化即可
$time = date("Y-m-d H:i:s",$time);
2、如果有多條結果集,不建議遍歷結果集,一一格式化時間,可直接在sql中使用from_unixtime(),該函式是mysql中的函式;
select from_unixtime(create_time,"%Y-%m-%d") as time from student
3、如果在Yii中,使用AR查詢,不直接寫sql,則在使用的時候會報錯
Student::find()
->select("id,name,from_unixtime(create_time,"%Y-%m-%d") create_time")
->asArray()
->all();
這樣寫會報錯,因為AR中,會在查詢時,以逗號為分割,預設給每一個元素加上“上引號”,如果使用函式,會給整體再加上“上引號”,出現轉義錯誤,所以使用如下方法:
Student::find()
->select(new Expression("id,name,from_unixtime(create_time,"%Y-%m-%d") create_time"))
->asArray()
->all();
使用new Expression()處理一下就好了備註:
使用 FROM_UNIXTIME函式,具體如下: FROM_UNIXTIME(unix_timestamp,format)