2017-08-01 5 views
2

我正在嘗試使用in_timeout_time在同一個表中更新daiy_attendance表中的hours_worked列。已存儲在表中的in_timeout_timeLaravel中的數據庫更新查詢?

所以我使用timediff來獲得差異。當我在phpmyadmin sql格式上嘗試時,查詢運行並正確執行,但是當我嘗試在程序中運行時,它不更新hours_worked列。它不會給出任何錯誤。

$sql5 = "UPDATE daily_attendances SET hours_worked = TIMEDIFF(out_time,in_time) WHERE in_time != '' AND out_time != '' "; 
$result2 = DB::statement(DB::raw($sql5)); 
+0

不知道是否是相關的:你設置 'time_worked' 可填充? –

+0

@JohnDoe它可以爲空 – colombo

+1

@JohnDoe OP沒有使用模型,所以'$ fillable'屬性是不相關的。 – fubar

回答

1

嘗試

DB::table('daily_attendances') 
       ->whereRaw("in_time != '' AND out_time != ''") 
       ->update(['hours_worked ' =>DB::raw('TIMEDIFF(out_time,in_time)')]); 

OR 只使用db:statement

$sql5 = "UPDATE daily_attendances SET hours_worked = TIMEDIFF(out_time,in_time) WHERE in_time != '' AND out_time != '' "; 
$result2 = DB::statement($sql5); 
+0

都不起作用 – colombo

+0

檢查你的數據庫連接,是否連接到你試過的同一個數據庫phpmyadmin – sumit

+0

連接是好的 – colombo