我在数据库中将日期存储为VARCHAR时犯了一个错误,这里看起来像是 02/12/2018 ,我创建了一个使用碳来获取当前日期的变量 +14天。
$current_date_plus_14 = Carbon::now() -> addDay(14) -> format('d/m/Y');
问题
我正在尝试比较数据库中的这个日期 02/12/2018 ,并将其作为VARCHAR存储到我使用Carbon生成的日期 09/04/2017
雄辩代码
$gquery = Client::where('required_date', '>=', $current_date_plus_14) -> get();
我得到了什么
它没有得到任何结果,因为它仅比较 required_date 中的日期和碳日期中的日期。
虽然它应该返回值,因为存在超过1年的差异?
答案 0 :(得分:3)
尝试使用此函数将日期转换为String(可以使用varchar)转换为实际日期
private function convertDateString($date)
{
if (is_string($date)) {
$date = Carbon::parse($date,new DateTimeZone('YOUR_DATE_TIME_ZONE'));
}
return $date;
}
答案 1 :(得分:0)
即使您的字段是VARCHAR
而不是DATETIME
或DATE
,您仍然可以通过将属性名称添加到{{1}来将其标记为您的Eloquent模型中的日期}。您还必须更改自己的模型$dates
,因为您的格式为非$dateFormat
。