2017-06-20 281 views
1

我不familar與爲什麼我有以下錯誤SQLSERVER格式日期時間

Conversion failed when converting date and/or time from character string. 
... 
values (1, 'P' + char(10) + 'd' + char(10) + 'inst', 
CONVERT(VARCHAR(24),'18-01-2016 11:29:27',113)) 

13的代碼是= dd mon yyyy hh:mi:ss:mmm (24h)是有可能錯誤代碼的SQL Server?

我檢查這個answer也沒有工作

values (1, 'P' + char(10) + 'd' + char(10) + 'inst', 
format('18-01-2016 11:29:27','MM/dd/yyyy HH:mm:ss')) 
+0

我沒有得到任何錯誤,試圖將日期轉換爲varchar ...你能提供一個錯誤的更具體的例子? –

+0

@ bastos.sergio更改日期時間似乎工作 – Moudiz

回答

2

首先在目標類型的CONVERT應該是DATETIME ...

你試過格式代碼預計每月字(mon!= mm

SELECT CONVERT(DATETIME,'18 jan 2016 11:29:27',113); 

您可以使用其中的一個:

SELECT CONVERT(DATETIME,'18-01-2016 11:29:27',103) 
SELECT CONVERT(DATETIME,'18-01-2016 11:29:27',104) 
+0

我從w3school採取的varchar示例https://www.w3schools.com/sql/func_convert.asp – Moudiz

+0

@Moudiz看看[文檔](https:// docs .microsoft.com/EN-US/SQL/T-SQL /功能/澆注和轉換-的Transact-SQL)。第一個參數指定**目標數據類型**。由於您試圖將字符串日期轉換爲本地'DATETIME',因此您不應在此處使用'VARCHAR(24)'... – Shnugo

0

相信其爲varchar插入,u可以使用這個腳本

SELECT CONVERT(varchar(24),'18-01-2016 11:29:27',120) 
+0

您是否檢查過? '代碼120'代表'yyyy-mm-dd hh:mi:ss(24h)'這顯然不是給定的格式... – Shnugo

+0

120,126可以用於dd-mm-yyyy aswel –

+0

你試過嗎? – Shnugo