Pertanyaan Masa (Pembina Pertanyaan 8)


Perbandingan masa

Rangka kerja mempunyai kaedah pertanyaan masa yang biasa digunakan terbina dalam, dan boleh mengenal pasti jenis medan masa secara automatik, jadi tidak kira jenis medan masa yang digunakan, penggunaan pertanyaan masa dalam bab ini boleh digunakan secara seragam.

Gunakan kaedah whereTime

whereTime menyediakan pertanyaan pantas medan tarikh dan masa, contohnya adalah seperti berikut:

// 大于某个时间
Db::name('user')
    ->whereTime('birthday', '>=', '1970-10-1')
    ->select();
// 小于某个时间
Db::name('user')
    ->whereTime('birthday', '<', '2000-10-1')
    ->select();
// 时间区间查询
Db::name('user')
    ->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1'])
    ->select();
// 不在某个时间区间
Db::name('user')
    ->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1'])
    ->select();

Anda juga boleh menggunakan ungkapan masa berikut untuk pertanyaan masa

rreee

Soal selang masa tertentu

Untuk pertanyaan selang masa, sistem juga menyediakan kaedah pintasan whereBetweenTime/whereNotBetweenTime.

// 查询两个小时内的博客
Db::name('blog')
	->whereTime('create_time','-2 hours')
    ->select();

Soal tahun tertentu

Soal pengguna yang mendaftar tahun ini

// 查询2017年上半年注册的用户
Db::name('user')
    ->whereBetweenTime('create_time', '2017-01-01', '2017-06-30')
    ->select();
    
// 查询不是2017年上半年注册的用户
Db::name('user')
    ->whereNotBetweenTime('create_time', '2017-01-01', '2017-06-30')
    ->select();

Soal pengguna yang didaftarkan tahun lepas

Db::name('user')
    ->whereYear('create_time')
    ->select();

Soal penggunaan data tahun tertentu

Db::name('user')
    ->whereYear('create_time', 'last year')
    ->select();

Soal bulan

Pengguna yang mendaftarkan bulan ini

// 查询2018年注册的用户
Db::name('user')
    ->whereYear('create_time', '2018')
    ->select();
e

Query pengguna yang didaftarkan pada bulan lalu

Db::name('user')
    ->whereMonth('create_time')
    ->select();
e qquery pengguna yang didaftarkan pada bulan Jun 2018

Db::name('user')
    ->whereMonth('create_time','last month')
    ->select();
e

query minggu tertentu

Queryery data minggu ini

Db::name('user')
    ->whereMonth('create_time', '2018-06')
    ->select();
e

query data minggu lalu. data bermula dari hari yang ditentukan Data mingguan

Db::name('user')
    ->whereWeek('create_time')
    ->select();

Soal hari tertentu


Soal pengguna yang didaftarkan pada hari itu

Db::name('user')
    ->whereWeek('create_time', 'last week')
    ->select();

Soal pengguna yang mendaftar semalam

// 查询2019-1-1到2019-1-7的注册用户
Db::name('user')
    ->whereWeek('create_time', '2019-1-1')
    ->select();

Soal data hari tertentu menggunakan

Perbandingan selang medan masa

boleh menyokong Perbandingan selang dua medan masa

Db::name('user')
    ->whereDay('create_time')
    ->select();

Pertanyaan di atas adalah bersamaan dengan

Db::name('user')
    ->whereDay('create_time', 'yesterday')
    ->select();

Peraturan pertanyaan masa tersuai

Anda boleh menambah peraturan pertanyaan masa tersuai dengan menetapkan fail konfigurasi_pertanyaan_masa

dalam fail konfigurasi pangkalan data

// 查询2018年6月1日注册的用户
Db::name('user')
    ->whereDay('create_time', '2018-06-01')
    ->select();