SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Grup SQLite berdasarkan/hitung jam, hari, minggu, tahun

Saya akan memilih untuk menggunakan stempel waktu Unix (jumlah detik sejak "Epoch"), mengingat mereka nyaman untuk penghitungan rentang dan dipahami oleh sebagian besar perpustakaan tanggal-waktu yang kuat.

SQLite menyediakan beberapa fungsi pembantu untuk bekerja dengan cap waktu Unix. Yang paling berguna di sini adalah strftime .

Anda dapat memasukkan stempel waktu Unix saat ini dengan menggunakan strftime('%s', 'now') di INSERT Anda.

Nanti, jika Anda mengetahui rentang waktu tertentu yang Anda minati, Anda dapat menghitung stempel waktu minimum dan maksimum untuk rentang tersebut dan memilih baris di antaranya:

SELECT * FROM data 
WHERE timestamp >= strftime('%s', '2012-12-25 00:00:00') 
AND timestamp < strftime('%s', '2012-12-25 01:00:00');

Atau, misalkan Anda ingin menghitung permintaan setahun berdasarkan bulan:

SELECT strftime('%m', timestamp), count(*) FROM Data
WHERE timestamp >= strftime('%s', '2012-01-01 00:00:00') 
AND timestamp < strftime('%s', '2013-01-01 00:00:00') 
GROUP BY strftime('%m', timestamp);

Melalui penggunaan opsi format yang cerdas strftime menyediakan, Anda mungkin dapat mengerjakan sebagian besar kueri tersebut dengan cukup cepat.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ketidakcocokan tipe data (kode 20) saat memasukkan

  2. Gabung Dalam SQLite

  3. Posting cepat tentang SQLite UPSERT dan klausa RETURNING baru.

  4. 2 Cara Mengaktifkan Bungkus Kata di SQLite

  5. SQLiteException tidak ada tabel seperti itu:ItemTable saat kompilasi:Select_id,.... dari ItemTable