2017-06-20 191 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