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

Sử dụng ngày trong ô Excel trong mệnh đề GIỮA trong truy vấn SQL

Thay vì định dạng các giá trị như ngày tháng hoặc chuỗi vào lệnh SQL, tốt hơn là sử dụng ADODB.Parameter - trong trường hợp đó người lái xe sẽ làm tất cả công việc cho bạn. Bạn không cần phải quan tâm đến các dấu ngoặc kép xung quanh một chuỗi, định dạng ngày tháng để cơ sở dữ liệu hiểu nó một cách chính xác (điều này phụ thuộc nhiều vào cơ sở dữ liệu, cài đặt vùng, v.v.). Thêm vào đó, nó là một biện pháp bảo vệ chống lại SQL injection. Ngoài ra, trình tối ưu hóa truy vấn có thể thực hiện công việc tốt hơn nhiều vì nó nhận được cùng một lệnh SQL mọi lúc và ghi nhớ kế hoạch thực thi.

Nhược điểm:mã nhận được phức tạp hơn một chút vì bạn phải liên quan đến ADODB.command đối tượng.

Trong câu lệnh SQL của mình, bạn đặt một ? đơn giản tại nơi bạn muốn có một tham số. Bạn chỉ cần quan tâm đến các con số và vị trí của ? và các thông số phù hợp.

Dim Conn As New ADODB.Connection, cmd As New ADODB.Command, param As ADODB.Parameter, rs As ADODB.Recordset
Conn.Open "<your connection string>"
Set cmd.ActiveConnection = Conn
cmd.CommandText = "SELECT cID FROM logistics WHERE DATE(insert_timestamp) BETWEEN ? AND ? GROUP BY 1"

Set param = cmd.CreateParameter(, adDate, adParamInput, , Date)
cmd.Parameters.Append param
Set param = cmd.CreateParameter(, adDate, adParamInput, , Date + 1)
cmd.Parameters.Append param

Set rs = cmd.Execute
Debug.Print rs.Fields(0).Name, rs(0).Value

P.S. Hơi lười biếng trong việc xử lý ngày tháng, nếu bạn có dữ liệu chính xác vào lúc nửa đêm, bạn sẽ nhận được quá nhiều dữ liệu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để kết nối với cơ sở dữ liệu Mysql trong Delphi là gì

  2. tham gia có điều kiện trong mysql

  3. Làm thế nào để bạn duy trì kiểm soát sửa đổi cấu trúc cơ sở dữ liệu của bạn?

  4. Cách cài đặt Adminer trên ứng dụng riêng của nó

  5. có cách nào để liệt kê tất cả các từ dành riêng trong mysql bằng tiện ích dòng lệnh mysql không