我有一个 Laravel 应用程序,我每小时采样一次数据并将其存储在数据库中。
现在我想检索在欧洲/阿姆斯特丹时区 12:00 左右创建的所有记录。 (该时区有夏令时)
例如,如果我有以下created_at的记录
我想检索created_at所在的记录:
任何人都可以帮助我如何为此创建 Eloquent 查询吗?
在此代码片段中,
CONVERT_TZ(created_at,'+00:00','+01:00')
用于将created_at
时间戳从UTC转换为欧洲/阿姆斯特丹时区。 TIME
函数从时间戳中提取时间部分。随后使用 whereRaw
方法来过滤记录,仅选择时间在 11:00:00 到 12:00:00 之间的记录。
$records = DB::table('your_table')
->whereRaw("TIME(CONVERT_TZ(created_at,'+00:00','+01:00')) >= ?", ['11:00:00'])
->whereRaw("TIME(CONVERT_TZ(created_at,'+00:00','+01:00')) <= ?", ['12:00:00'])
->get();