PHP ISO 8601格式和SQL Server-时区
尝试使用PHP通过函数以编程方式插入数据时PHP ISO 8601格式和SQL Server-时区,php,sql-server-2008,zend-framework,datetime,pdo,Php,Sql Server 2008,Zend Framework,Datetime,Pdo,尝试使用PHP通过函数以编程方式插入数据时 date('c') 它返回以下格式的日期 2011-12-20T19:01:03+11:00 但是,在插入SQL Server数据库时,这不适合。它将返回错误 从字符串转换日期和/或时间时转换失败 现在当然有很多方法可以解决这个问题。插入数据时可以很容易地检查和更改格式,并指定yyyy-mm-dd-hh:mm:ss(不准确)。然而,我更愿意使用日期('c')格式,并依靠该调用来处理我的问题 我正在使用PDO和Zend_DB连接到数据库 有什么建议吗
date('c')
它返回以下格式的日期
2011-12-20T19:01:03+11:00
但是,在插入SQL Server数据库时,这不适合。它将返回错误
从字符串转换日期和/或时间时转换失败
现在当然有很多方法可以解决这个问题。插入数据时可以很容易地检查和更改格式,并指定yyyy-mm-dd-hh:mm:ss(不准确)。然而,我更愿意使用日期('c')格式,并依靠该调用来处理我的问题
我正在使用PDO和Zend_DB连接到数据库
有什么建议吗?用于存储日期的字段类型是什么?它在datetime不起作用 快速测试:
-- shows error
CREATE TABLE #tmp1 (
c1 varchar(30),
dto1 datetimeoffset,
dt1 datetime
)
GO
INSERT INTO #tmp1 (
c1,
dto1,
dt1
) VALUES (
'2011-12-20T19:01:03+11:00',
'2011-12-20T19:01:03+11:00',
'2011-12-20T19:01:03+11:00'
)
GO
SELECT * FROM #tmp1
DROP TABLE #tmp1
GO
-- works - datetime2
CREATE TABLE #tmp2 (
c1 varchar(30),
dto1 datetimeoffset,
dt2 datetime2
)
GO
INSERT INTO #tmp2 (
c1,
dto1,
dt2
) VALUES (
'2011-12-20T19:01:03+11:00',
'2011-12-20T19:01:03+11:00',
'2011-12-20T19:01:03+11:00'
)
GO
SELECT * FROM #tmp2
DROP TABLE #tmp2
GO
您用于存储日期的字段类型是什么?它在datetime不起作用 快速测试:
-- shows error
CREATE TABLE #tmp1 (
c1 varchar(30),
dto1 datetimeoffset,
dt1 datetime
)
GO
INSERT INTO #tmp1 (
c1,
dto1,
dt1
) VALUES (
'2011-12-20T19:01:03+11:00',
'2011-12-20T19:01:03+11:00',
'2011-12-20T19:01:03+11:00'
)
GO
SELECT * FROM #tmp1
DROP TABLE #tmp1
GO
-- works - datetime2
CREATE TABLE #tmp2 (
c1 varchar(30),
dto1 datetimeoffset,
dt2 datetime2
)
GO
INSERT INTO #tmp2 (
c1,
dto1,
dt2
) VALUES (
'2011-12-20T19:01:03+11:00',
'2011-12-20T19:01:03+11:00',
'2011-12-20T19:01:03+11:00'
)
GO
SELECT * FROM #tmp2
DROP TABLE #tmp2
GO
我在MySQL中使用date('c')没有任何问题。您使用的是哪个数据库?实际上是SQL Server 2008数据库。在这一点上,MySQL工作起来很有魅力。我在MySQL中使用date('c')没有任何问题。您使用的是哪个数据库?实际上是SQL Server 2008数据库。在这一点上,MySQL工作起来很有魅力。谢谢你,BartekR,这对我很有用。直到现在我才知道datetime2的数据类型。谢谢你,BartekR,这对我很有用。直到现在我才知道datetime2数据类型。