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

Cách thêm tháng vào ngày trong SQLite

Vấn đề:

Bạn muốn thêm một tháng vào một ngày cụ thể trong cơ sở dữ liệu SQLite.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên production với dữ liệu trong các cột id , productstart_date .

id sản phẩm start_date
1 bàn 2019-08-17
2 ghế bành 2019-07-17
3 ghế sofa 2019-10-31

Các sản phẩm có ngày bắt đầu sản xuất mới muộn hơn một tháng so với danh sách ở trên. Hãy lấy tên sản phẩm và ngày bắt đầu mới của chúng.

Đây là truy vấn bạn sẽ viết:

Giải pháp:

SELECT product,
  DATE(start_date,'+1 months')
  AS new_start_date
FROM production;

Đây là kết quả của truy vấn:

id sản phẩm new_start_date
1 bàn 2019-09-17
2 ghế bành 2019-08-17
3 ghế sofa 2019-12-01

Thảo luận:

Sử dụng SQLite DATE() chức năng thêm một tháng vào một ngày nhất định (hoặc ngày và giờ). Các đối số được yêu cầu bao gồm ngày / giờ để thay đổi và một hoặc nhiều công cụ sửa đổi với các giá trị cho biết số lượng đơn vị cộng hoặc trừ.

Đối số đầu tiên có thể là một biểu thức trả về giá trị ngày / giờ hoặc cột ngày / giờ. Trong ví dụ của chúng tôi, đó là cột start_date .

Các bổ ngữ cho biết đơn vị thời gian cần thêm (và bao nhiêu) để cộng / trừ. Trong ví dụ của chúng tôi, chúng tôi sử dụng công cụ sửa đổi ‘ +1 tháng '. Bổ ngữ bắt đầu bằng cộng hoặc trừ, cho biết phép cộng hoặc phép trừ. Sau đó, có một giá trị (ví dụ:1) và đơn vị (ví dụ: tháng , năm , ngày , v.v.) Nếu bạn viết ‘ -2 ngày ', Bạn trừ đi 2 ngày từ một ngày nhất định.

Quan trọng: Một số công cụ sửa đổi yêu cầu cú pháp hơi khác so với trình bày ở trên. Ví dụ:‘ ngày trong tuần 'Modifier đứng trước giá trị (tức là DATE(start_date,'weekday 3') ). Các công cụ sửa đổi khác không có giá trị nào, chẳng hạn như ‘ đầu tháng ’, Hiển thị ngày đầu tiên của tháng cho một ngày nhất định (tức là DATE(start_date,' start of month') ). Bạn có thể tìm thấy thông tin chính xác về các công cụ sửa đổi ngày và giờ trong tài liệu SQLite.

Chúng tôi đã đặt tên cho cột mới chứa ngày bắt đầu được cập nhật new_start_date . Ngày bắt đầu sản xuất mới cho bàn làm việc 2019-09-17 , chậm hơn một tháng so với ngày ban đầu của 2019-08-17 . Lưu ý rằng đối với 2019-10-31 , ngày mới là 2019-12-01; điều này là do tháng 11 có 30 ngày, không phải 31.


No
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại dữ liệu đã tìm kiếm từ sqlite

  2. Làm cách nào để kết hợp dữ liệu từ hai bảng riêng biệt thành một Con trỏ duy nhất?

  3. SQLite Delete

  4. Lỗi SQLiteConstraintException hiển thị sau khi bắt đầu mọi hoạt động

  5. chmod không thành công:EPERM (Hoạt động không được phép) trong Android?