Đầu tiên, bạn có vẻ nhầm lẫn về sự khác biệt giữa DateTime
đối tượng và String
được định dạng đại diện của DateTime
đó sự vật. Now
hoặc thậm chí tốt hơn, DateTime.Now
đã là một DateTime
, vì vậy không có ý nghĩa gì nếu định dạng nó thành một chuỗi và sau đó phân tích cú pháp chuỗi để đưa nó trở lại thành một DateTime
giá trị một lần nữa. Vì vậy, bạn có thể chỉ cần làm điều này để đạt được điều tương tự:
Dim timestamp As Date = Date.Now
Lưu ý rằng trong VB.NET, Date
là một từ khóa viết tắt của DateTime
, giống như Integer
là "viết tắt" của Int32
.
Thứ hai, bạn không nên thêm DateTime
các giá trị trực tiếp vào chuỗi lệnh SQL. Bạn nên sử dụng một truy vấn được tham số hóa. Khi bạn thêm DateTime
giá trị của chuỗi SQL, bạn phải đảm bảo rằng nó được định dạng đúng (bằng cách gọi timestamp.ToString(...)
). Tuy nhiên, thật không may, định dạng nào phù hợp sẽ phụ thuộc hoàn toàn vào cài đặt văn hóa của máy chủ. Vì vậy, tốt hơn hết là sử dụng một tham số DB, đặt giá trị tham số bằng với DateTime
thực tế và sau đó để nhà cung cấp DB thực hiện chuyển đổi cho bạn.