2017-07-31 102 views
1

我需要一些幫助,如果可能我試圖更新[Created On]和[Modified On],我已經嘗試了很多方法來做到這一點SOF(在這裏)。從字符串轉換日期和/或時間時轉換失敗SQL 17.1

USE [DBName] 
SET [Created On] = '2017-07-27 10:13:00',[Modified On] = '2017-07-27 10:19:00' 
WHERE [Contract] = 'xxxxxxxxxxxxxxxx' 
GO 

的兩列分別設置爲(爲nvarchar(255),空 - 但是,他們現在已經更改爲(日期時間,NULL) - 兩種方式給了我同樣的錯誤知道,我知道這兩欄。日期和時間的數據是不一樣的,我不能進去糾正這一切,因爲它已經交給我這樣。前一個人知道如何操縱數據,對我來說我是不可能的!

I' m重複出現以下錯誤並且我不知所措

Msg 241,Level 16,State 1,Line 4 Conversio當從字符串轉換 日期和/或時間時,n失敗。

我使用SQL Server Management Studio v17.1作爲管理員。

如果可能的話,是否有人可以引導我朝正確的方向發展?

在此先感謝!

+0

運行DBCC USEROPTIONS,dateformat和language是什麼意思? – gbn

回答

1

使用ISO 8601日期

USE [DBName] 
SET [Created On] = '20170727 10:13:00',[Modified On] = '20170727 10:19:00' 
WHERE [Contract] = 'xxxxxxxxxxxxxxxx' 
GO 

爲什麼?隱含DATEFORMAT語言設​​置

SET LANGUAGE us_english 

SELECT CAST('2017-07-27 10:13:00' AS datetime) 

SET LANGUAGE british 

SELECT CAST('2017-07-27 10:13:00' AS datetime) 
+0

您已修復它!非常感謝你,在經過4個小時的研究並嘗試了很多不同的方法之後,我正準備把頭伸進顯示器!只有你一個!再次感謝:) –

0

您是否使用過UPDATE聲明?

UPDATE t 
    SET [Created On] = '2017-07-27 10:13:00', 
     [Modified On] = '2017-07-27 10:19:00' 
    WHERE [Contract] = 'xxxxxxxxxxxxxxxx'; 

注意:這也用一個空格替換雙空格。如果你有上述問題,日期時間常量的形式定義使用「T」而不是空格。

+0

Msg 241,Level 16,State 1,Line 5 從字符串轉換日期和/或時間時轉換失敗。 –

+0

我仍然收到同樣的錯誤,我對雙重發帖表示歉意。 –

+0

@ LewisDee-Thomas。 。 。它不適用於「T」:「2017-07-27T10:13:00''。 –

0
  UPDATE t 
      SET Cast([CreatedOn] AS DATETIME) = '2017-07-31 08:05:00', 
       cast([ModifiedOn] AS datetime) = '2017-07-31 15:25:00' 
      FROM tablename t 
      WHERE [Contract] = 'xxxxxxxxxxxxxxxx' 
相關問題