điều này thực sự khiến tôi bối rối trong vài ngày và đang tìm kiếm sự trợ giúp. Tôi đang sử dụng SQL Server 2017.
Tôi đang cố xử lý các chuỗi từ trường định dạng miễn phí và chuyển đổi chúng thành ngày ở định dạng "dd/mm/yyyy" hoặc nếu chúng không ở định dạng này thì chỉ cần hiển thị nguyên văn văn bản.
Tôi cần cái này ở chế độ XEM nên không thể sử dụng SET LANGUAGE. Nghe có vẻ đơn giản khi sử dụng đổi và là ngày nhưng dường như không hoạt động.
Vì vậy, đối với đoạn mã bên dưới (hãy nhớ rằng đây sẽ ở chế độ XEM), tôi muốn đọc văn bản và nếu chuỗi chuyển đổi thành ngày (tức là.ở định dạng "dd/mm/yyyy", sau đó chạy chuyển đổi thành ngày vì tôi cần nó ở định dạng ngày để Excel nhận (thông qua Cơ sở dữ liệu máy chủ SQL kết nối)) và nếu nó không chuyển đổi thành ngày thì hiển thị văn bản như nó vốn có.
tạo bảng dateTest1
( idx int,
dateStringTest varchar(15)
);
chèn vào dateTest1 (idx, dateStringTest)
các giá trị (1, '13/01/2021'), (2, 'không');
lựa chọn
trường hợp khi isdate(convert(datetime, dateStringTest, 103)) = 1
sau đó chuyển đổi (datetime, dateStringTest, 103)
khác dateStringTest
kết thúc như dtre
từ ngàyTest1
--nơi idx = 1
-- error: Msg 241, Level 16, State 1, Line 15 Chuyển đổi không thành công khi chuyển đổi ngày và/hoặc thời gian từ chuỗi ký tự.
-- lỗi này xảy ra với idx = 2. Idx = 1 hoạt động bình thường
Bất kỳ sự trợ giúp nào về điều này sẽ được đánh giá rất cao vì nó đang làm tôi bận tâm.
Cảm ơn trước
Phao-lô