从字符串转换日期和/或时间时PHP错误转换失败

从字符串转换日期和/或时间时PHP错误转换失败,php,sql-server,datetime,Php,Sql Server,Datetime,我一直在寻找答案。我是PHP新手,我正在尝试将当前日期和时间插入datetime类型的数据库表列中。然而,它给了我错误 $tsql ="INSERT INTO metaTagsTable (Email,nMetaTheme,nMetaSpecification,sMetaDuration,nChildrenYearTo,nChildrenYearFrom,nMetaPaxChildren,nMetaPax,dMetaReturnDate,dMetaDepartureDate, nMetaDest

我一直在寻找答案。我是PHP新手,我正在尝试将当前日期和时间插入datetime类型的数据库表列中。然而,它给了我错误

$tsql ="INSERT INTO metaTagsTable (Email,nMetaTheme,nMetaSpecification,sMetaDuration,nChildrenYearTo,nChildrenYearFrom,nMetaPaxChildren,nMetaPax,dMetaReturnDate,dMetaDepartureDate, nMetaDestinationSubArea,nMetaDestinationArea,nMetaDestinationCountry,nMetaDestination,nMetaDepartureSubArea,nMetaDepartureArea,nMetaDepartureCountry,nMetaDeparture,sMetaCategory,ModifiedDate,dCreatedDate,nSupplierId,VisitorID) VALUES ('".$array[0]."','".$array[1]."','".$array[2]."','".$array[3]."','".$array[4]."','".$array[5]."','".$array[6]."','".$array[7]."',
'".$array[8]."','".$array[9]."','".$array[10]."','".$array[11]."','".$array[12]."','".$array[13]."','".$array[14]."','".$array[15]."','".$array[16]."','".$array[17]."','".$array[18]."',getdate(),getdate(),'".$array[21]."','".$array[22]."')";
已根据此输入生成数组:

test;null;null;null;null;null;null;null;null;null;null;null;"499366";null;null;null;null;null;"Catalogue";null;null;null;null
错误:

Array ( [0] => Array ( [0] => 22007 [SQLSTATE] => 22007 [1] => 241 [code] => 241 [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Conversion failed when converting date and/or time from character string. [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Conversion failed when converting date and/or time from character string. ) ) 
表格设计:

CREATE TABLE [dbo].[metaTagsTableTMP](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Email] [nvarchar](50) NULL,
[nMetaTheme] [nvarchar](20) NULL,
[nMetaSpecification] [nvarchar](20) NULL,
[sMetaDuration] [nvarchar](20) NULL,
[nChildrenYearTo] [nvarchar](20) NULL,
[nChildrenYearFrom] [nvarchar](20) NULL,
[nMetaPaxChildren] [nvarchar](20) NULL,
[nMetaPax] [nvarchar](20) NULL,
[dMetaReturnDate] [nvarchar](50) NULL,
[dMetaDepartureDate] [nvarchar](50) NULL,
[nMetaDestinationSubArea] [nvarchar](20) NULL,
[nMetaDestinationArea] [nvarchar](20) NULL,
[nMetaDestinationCountry] [nvarchar](20) NULL,
[nMetaDestination] [nvarchar](20) NULL,
[nMetaDepartureSubArea] [nvarchar](20) NULL,
[nMetaDepartureArea] [nvarchar](20) NULL,
[nMetaDepartureCountry] [nvarchar](20) NULL,
[nMetaDeparture] [nvarchar](20) NULL,
[sMetaCategory] [nvarchar](20) NULL,
[ModifiedDate] [datetime] NULL,
[dCreatedDate] [datetime] NULL,
[nSupplierId] [nvarchar](20) NULL,
[VisitorID] [nvarchar](50) NULL,
CONSTRAINT [PK_metaTagsTableTMP] PRIMARY KEY CLUSTERED 

如果dateTime参数是字符串,则它应为以下格式:

yyyy-MM-dd HH:mm:ss

我没有把
getdate()
当作一种方法,我不知道为什么。所以我没有正确引用。 这是正确的查询:

$tsql ="INSERT INTO metaTagsTable (Email,nMetaTheme,nMetaSpecification,sMetaDuration,nChildrenYearTo,nChildrenYearFrom,nMetaPaxChildren,nMetaPax,dMetaReturnDate,dMetaDepartureDate, nMetaDestinationSubArea,nMetaDestinationArea,nMetaDestinationCountry,nMetaDestination,nMetaDepartureSubArea,nMetaDepartureArea,nMetaDepartureCountry,nMetaDeparture,sMetaCategory,ModifiedDate,dCreatedDate,nSupplierId,VisitorID) VALUES ('".$array[0]."','".$array[1]."','".$array[2]."','".$array[3]."','".$array[4]."','".$array[5]."','".$array[6]."','".$array[7]."','".$array[8]."','".$array[9]."','".$array[10]."','".$array[11]."','".$array[12]."','".$array[13]."','".$array[14]."','".$array[15]."','".$array[16]."','".$array[17]."','".$array[18]."',".getdate().",".getdate().",'".$array[21]."','".$array[22]."')";

请发布$array的内容,以便我们可以看到传递给INSERT query.Thx的内容,但为什么它应该是字符串?通过正确执行查询,我没有插入任何字符串?能否调试生成的INSERT语句,MsSQL错误表明它接收到未知的字符串格式;我怀疑您试图插入一个空字符串。您使用什么API生成和执行此查询?谢谢,我稍后会看一看,因为我现在无法访问服务器;/。我认为它相当标准的API=第一个谷歌搜索PHP mssql查询…:D