Sử dụng SQL Server 2008, truy vấn này hoạt động tuyệt vời:Kết hợp (concatenating) ngày và thời gian vào một datetime
select CAST(CollectionDate as DATE), CAST(CollectionTime as TIME)
from field
Cung cấp cho tôi hai cột như thế này:
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
.
.
.
Tôi đang cố gắng để kết hợp chúng vào một ngày giờ duy nhất bằng dấu cộng, như sau:
select CAST(CollectionDate as DATE) + CAST(CollectionTime as TIME)
from field
Tôi đã xem xét khoảng mười trang web, bao gồm các câu trả lời o n trang web này (như this one), và tất cả họ dường như đồng ý rằng dấu cộng nên làm việc nhưng tôi nhận được lỗi:
Msg 8117, Level 16, State 1, Line 1
Operand data type date is invalid for add operator.
Tất cả các trường là khác không và không null. Tôi cũng đã thử hàm CONVERT và cố gắng truyền các kết quả này dưới dạng varchars, cùng một vấn đề. Điều này không thể khó khăn như tôi đang làm.
Ai đó có thể cho tôi biết tại sao điều này không hiệu quả? Cảm ơn vì bất kì sự giúp đỡ.
là gì các kiểu dữ liệu ban đầu cho mỗi cột ?, và nếu họ được chuỗi, như thế nào là dữ liệu lưu trữ ở đó? (YYYY-MM-DD, YYYYMMDD, v.v ..) – Lamak
Thực ra, câu hỏi tiếp theo cho bạn và @Aaron Bertrand, nếu tôi ĐANG ĐÚC (hoặc CHUYỂN ĐỔI) dữ liệu của tôi trong chính truy vấn, có quan trọng không nếu dữ liệu cơ bản được lưu trữ như là chuỗi hoặc ngày? Tôi đang lưu trữ như các lĩnh vực datetime, nhưng chỉ tò mò. – Stanton
@Stanton chắc chắn, nó không quan trọng. Tại sao phải trải qua hai cấp độ truyền/chuyển đổi khi bạn có thể không cần? –