SQL转换字符串错误的日期和/或时间

时间:2017-05-17 09:05:53

标签: sql sql-server

我对SQL很新。
我试图在一个选择中显示,因为当客户在数据库中但我收到错误Conversion failed when converting date and/or time from character string.

以下是我尝试显示日期的代码。

SELECT Naam + ' is klant sinds ' + [Klant sinds] FROM tblKlant

[Klant sinds]是日期时间类型。

谢谢你的时间!

3 个答案:

答案 0 :(得分:0)

SELECT Naam + ' is klant sinds ' + CONVERT(VARCHAR,[Klant sinds],101) FROM tblKlant

101 =美国日期/时间格式
For a complete list of possible date/time formats

答案 1 :(得分:0)

试试这个:SELECT CAST(Naam as varchar) + ' is klant sinds ' + CAST([Klant sinds] as varchar) FROM tblKlant

我已将Naam作为varchar转换为确保所有内容都在varchar / string类型

答案 2 :(得分:0)

从SQL Server 2012开始,您可以使用CONCAT将所有类型的值连接在一起,而不必担心转换或NULL值:

DECLARE @v_naam           NVARCHAR(100); SET @v_naam = N'Mic Mac Jampudding';
DECLARE @v_date           DATETIME;      SET @v_date = GETDATE();
DECLARE @v_somenullvalue  NVARCHAR(10);  SET @v_somenullvalue = NULL;
DECLARE @v_aninteger      SMALLINT;      SET @v_aninteger = 5;

SELECT CONCAT(@v_naam, ' is klant sinds ', @v_date, '. Some null value: ', @v_somenullvalue, ' and a lovely int: ', @v_aninteger);

输出:

Mic Mac Jampudding is klant sinds May 17 2017 11:27AM. Some null value:  and a lovely int: 5

如果您只想在DATETIME上没有时间部分的日期,则可以使用以下内容:

CAST(@v_date AS DATE)