สิ่งนี้ทำให้ฉันงุนงงมาสองสามวันแล้วและกำลังขอความช่วยเหลือ ฉันใช้ SQL Server 2017
ฉันกำลังพยายามจัดการสตริงจากฟิลด์รูปแบบอิสระ และแปลงเป็นวันที่ในรูปแบบ "dd/mm/yyyy" หรือหากไม่ได้อยู่ในรูปแบบนี้ ให้แสดงข้อความแบบคำต่อคำ
ฉันต้องการสิ่งนี้ใน VIEW ดังนั้นจึงไม่สามารถใช้ SET LANGUAGE ได้ ฟังดูง่ายโดยใช้ แปลง และ ไอเดท แต่ดูเหมือนจะไม่ทำงาน
ดังนั้นสำหรับตัวอย่างโค้ดด้านล่าง (โปรดจำไว้ว่านี่จะอยู่ใน VIEW) ฉันต้องการอ่านข้อความและถ้าสตริงแปลงเป็นวันที่ (เช่นอยู่ในรูปแบบ "dd/mm/yyyy" จากนั้นเรียกใช้การแปลงเป็นวันที่ตามที่ฉันต้องการในรูปแบบวันที่เพื่อให้ Excel รับ (ผ่าน Connect SQL Sever Database)) และหากไม่แปลงเป็นวันที่ แสดงข้อความตามที่เป็นอยู่
สร้างตาราง dateTest1
(idx int,
dateStringTest varchar(15)
);
แทรกใน dateTest1 (idx, dateStringTest)
ค่า (1, '13/01/2021'), (2, 'ไม่');
เลือก
กรณีเมื่อ isdate(convert(datetime, dateStringTest, 103)) = 1
จากนั้นแปลง (datetime, dateStringTest, 103)
อื่น dateStringTest
สิ้นสุดเป็น dtres
จาก dateTest1
--โดยที่ idx = 1
-- ข้อผิดพลาด: ข่าวสารเกี่ยวกับ 241 ระดับ 16 สถานะ 1 บรรทัด 15 การแปลงล้มเหลวเมื่อแปลงวันที่และ/หรือเวลาจากสตริงอักขระ
-- ข้อผิดพลาดนี้เกิดขึ้นกับ idx = 2 Idx = 1 ใช้งานได้
ความช่วยเหลือใด ๆ เกี่ยวกับเรื่องนี้จะได้รับการชื่นชมอย่างมากเนื่องจากฉันกำลังดำเนินการอยู่
ขอบคุณล่วงหน้า
พอล