我有轉換字符串到目前爲止的問題。事情是,我創建了表格,並且獲得了大量記錄的數據庫,並且我應該將其加載到我的表格中。我搜索了任何解決方案,但我只用SELECT或CONVERT找到了單數記錄。到目前爲止SQL Server轉換字符串
這是錯誤消息:從字符串變換日期和/或時間時
轉換失敗。
我應該如何解決它的許多記錄(SQL Server)?
感謝您的幫助。
我有轉換字符串到目前爲止的問題。事情是,我創建了表格,並且獲得了大量記錄的數據庫,並且我應該將其加載到我的表格中。我搜索了任何解決方案,但我只用SELECT或CONVERT找到了單數記錄。到目前爲止SQL Server轉換字符串
這是錯誤消息:從字符串變換日期和/或時間時
轉換失敗。
我應該如何解決它的許多記錄(SQL Server)?
感謝您的幫助。
好吧,我列的順序錯誤,所以它採取的名稱日期,並儘量爲varchar轉換爲日期。我很感激你的幫助:)
如果我理解你的問題,你有一個或一些插入語句的問題。假設你可以改變INSERT
語句,那麼你可以使用ISDATE
由先前的評論者的建議:
INSERT INTO table_name
VALUES('Lisiak','Anna',
CASE WHEN ISDATE('1968-05')=1 THEN '1968-05' ELSE '1/1/1753' END,
CASE WHEN ISDATE('1998-01-01')=1 THEN '1998-01-01' ELSE '1/1/1753' END);
既然你撥弄例如有日期字段不爲空,我用1 /無效日期1/1753 - 相應更改。
如果因爲某種原因無法更改INSERT
語句,則另一個選擇是將您的表更改爲接受varchar而不是datetime。然後轉換並相應地改回。
UPDATE table_name
SET data_ur = CASE WHEN ISDATE(data_ur)=1 THEN data_Ur ELSE '1/1/1753' END;
ALTER TABLE table_name ALTER COLUMN data_ur DATE NOT NULL;
是的,但如果我有大約2000行,這是很難添加到他們每個人。當你沒有太多的記錄插入時很好。 – Maggie
你是否試圖從一個表加載數據到另一個,將varchar轉換爲datetime?你能提供樣品數據嗎? – sgeddes
不,我去那樣的smt文件(這是一個例子): INSERT INTO database_name.dbo.table_name VALUES('Smith','John','1965-10-21','1999-06-11 '), ...(重複).. – Maggie
有大約2.000條記錄,所以我需要一個解決方案,我可以一次使用所有這些 – Maggie