将数据类型nvarchar转换为datetime时出错

fdg*_*dfg 5 datetime sql-server-2005 type-conversion

我有以下程序界面:

Create procedure [dbo].[InsertItemDetails]
    @TimeItemAdded datetime
Run Code Online (Sandbox Code Playgroud)

当我这样称呼时:

EXEC [dbo].[InsertItemDetails]
     @TimeItemAdded = N'20/07/2012 00:00:00';
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息8114,级别16,状态5
将数据类型nvarchar转换为datetime时出错.

Lit*_*les 12

根据您的区域设置,@TimeItemAdded可能无法识别您传入的参数.

你应该把日期传递给:

20120720
Run Code Online (Sandbox Code Playgroud)

  • 这不是一种安全的格式.`SET LANGUAGE FRENCH; SELECT CONVERT(DATETIME,'2012-07-20 00:00:00');`产生`Msg 242,Level 16,State 3,Line 2; La conversion d'un typededonnéesvarcharen typededonnéesdatetimeacrééunevaleur hors limites.日期时间的安全格式为`YYYYMMDD`或'YYYY-MM-DDTHH:MM:SS.nnn` - 即`T`是重要. (3认同)