SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Nhóm SQLite theo / đếm giờ, ngày, tuần, năm

Tôi muốn bỏ phiếu cho việc sử dụng dấu thời gian Unix (số giây kể từ "kỷ nguyên"), vì chúng thuận tiện cho việc tính toán phạm vi và được hiểu bởi hầu hết các thư viện ngày-giờ mạnh mẽ.

SQLite cung cấp một vài hàm trợ giúp để làm việc với dấu thời gian Unix. Cái hữu ích nhất ở đây sẽ là strftime .

Bạn có thể chèn dấu thời gian Unix hiện tại bằng cách sử dụng strftime('%s', 'now') trong CHÈN của bạn.

Sau đó, nếu bạn biết một phạm vi thời gian cụ thể mà bạn quan tâm, bạn có thể tính dấu thời gian tối thiểu và tối đa cho phạm vi đó và chọn các hàng giữa chúng:

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

Hoặc giả sử bạn muốn đếm số lượng yêu cầu của một năm theo tháng:

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);

Thông qua việc sử dụng thông minh các tùy chọn định dạng strftime cung cấp, bạn có thể giải quyết hầu hết các truy vấn đó khá nhanh chóng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa truy vấn và làm mới trong ListView trong Android (sqlite)

  2. JSON_INSERT () so với JSON_SET () so với JSON_REPLACE () trong SQLite

  3. 2 cách liệt kê các bảng trong cơ sở dữ liệu SQLite

  4. Làm thế nào để khởi chạy ứng dụng với SQLite darabase trên trình giả lập Android Studio?

  5. SQLite JSON ()