Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 转换失败:在执行存储过程时,字符串转换为datetime_Sql Server - Fatal编程技术网

Sql server 转换失败:在执行存储过程时,字符串转换为datetime

Sql server 转换失败:在执行存储过程时,字符串转换为datetime,sql-server,Sql Server,有人知道将这些字符串(@orderdate&@processdate)从字符串转换为datetime数据类型的正确语法吗?我目前正在使用SQLServer2008 --- @param, @1, @2, @3, @orderdate, @4, @5, @6, @7, @8, @processdate, @9, @10 exec storedprocedure '01','1','2','3','2017-05-23 18

有人知道将这些字符串(@orderdate&@processdate)从字符串转换为datetime数据类型的正确语法吗?我目前正在使用SQLServer2008

          --- @param, @1, @2, @3, @orderdate,                   @4, @5, @6, @7, @8, @processdate,           @9, @10
exec storedprocedure '01','1','2','3','2017-05-23 18:27:03.290','4','5','6','7',8,'2017-05-23 18:27:03.290','9',10
错误消息

ALTER PROCEDURE [dbo].[table] 
            @param  varchar(2)=NULL,
            @1  nvarchar(40)=NULL,
            @2  nvarchar(100)=NULL,
            @3  nvarchar(40)=NULL,
            @ORDERDATE  datetime=NULL,
            @4 decimal=NULL,
            @5 nvarchar(10)=NULL,
            @6 nvarchar(10)=NULL,
            @7  nvarchar(6)=NULL,
            @8  nvarchar(12)=NULL,
            @PROCESSDATE datetime=NULL,
            @9 nvarchar(30)=NULL,
            @10 bit=NULL


BEGIN TRY
    IF @param ='01' 
    BEGIN
            INSERT INTO [TABLE]
                    ([1], [2], [3], [ORDER_DATE], [4], [5], [6], [7], [8], [PROCESS_DATE], [9], [10])
            VALUES
                    (@1, @2, @3, @ORDERDATE, @4, @5, @6, @7, @8, @PROCESSDATE, @9, @10)

        END 

我无法按原样运行您的代码,可能是因为缺少
as
、过程和表之间的名称冲突、
BEGIN/END/TRY
关键字有问题,或者是因为我在2012/2016年三次检查它是否按原样工作

尽管如此,代码可能会被缩减,而不会意外地影响问题。请尝试下面的内容并发回(对我来说很好):


如果有效,请尝试从此表单逐步升迁,以确定断点。

您使用的格式应该可以。显示存储过程的定义。它可能是
datetime
列,这些参数值位于
datetime2
中。如果尝试将日期设置为
'2017-05-23 18:27:03'
,它应该可以工作。什么是
存储过程
?它是如何定义的?您是否查看了部分?看起来订单也不匹配,最好执行存储过程为“Exec StoredProcedure@param='01',…”谢谢,您真的很有帮助。我已经指出了问题所在,这不是因为执行官。这对我帮助很大。感谢上帝为你这样的人。
Conversion failed when converting date and/or time from character string.
/*
DROP TABLE [TABLEONE]
DROP PROCEDURE [PROCEDURESEVEN]
*/

CREATE TABLE [TABLEONE] ([1] nvarchar(40), ORDER_DATE datetime, PROCESS_DATE datetime)
GO

CREATE PROCEDURE [dbo].[PROCEDURESEVEN] 
    @param  varchar(2)=NULL,
    @1  nvarchar(40)=NULL,
    @ORDERDATE  datetime=NULL,
    @PROCESSDATE datetime=NULL
AS
BEGIN
    INSERT INTO [TABLEONE] ([1], [ORDER_DATE], [PROCESS_DATE])
    VALUES (@1, @ORDERDATE, @PROCESSDATE)
END
GO

EXEC [PROCEDURESEVEN] '01', 'DUCK', '2017-05-23 18:27:03.290', '2017-05-23 18:27:03.290'
GO