我将值存储到数据库中,如9:30和1(我的数据类型在此列的数据库中为float),当我检索到我无法添加两个数字时,它打印为10但必须是在10:30,我正在使用laravel添加这两列
$get=DB::table('table_name')->select(DB::raw('sum(hours) AS hours'))
->get();
任何人都可以解决我的问题吗?
答案 0 :(得分:2)
float适用于带逗号,
的数字。您希望使用:
保存时钟时间。
因此,您可以将时间转换为浮动数据,然后将其存储到数据库10:30 -> 10.5
,然后将其总结为
$get=DB::table('table_name')->select(DB::raw('sum(hours) AS hours'))
->first();
$hours = str_replace('.', ':', $get->hours);
这个解决方案并不是野兽,因为有更好的方法来处理日期,方法是将它们保存为日期对象而不是浮动日期。
另一种方法是使用smalldatetime
而不是float来保存值。然后你可以节省时间,而不是你可以工作的数字。
答案 1 :(得分:1)
最好的办法是将数据类型从float更改为integer。通常在大多数编程和数据库级别中,浮点值存在问题,也可能导致精度问题。
所以我的建议是:
我希望这很有用。
答案 2 :(得分:0)
您可以在从db
中检索数据后执行此操作$n1 = '9:30';
$timestamp = strtotime($n1);
echo date('H:i',strtotime('+1 hour',$timestamp));