尝试使用PHP以编程方式插入数据时,通过函数
date('c')
它以下列格式返回日期......
2011-12-20T19:01:03+11:00
但是在插入SQL Server数据库时这不适用。它将返回错误...
从字符串
转换日期和/或时间时转换失败
现在当然有很多方法可以解决这个问题。插入数据时可以轻松浏览并更改格式,并指定yyyy-mm-dd hh:mm:ss(不准确)。但是,我更愿意使用日期(' c')格式并依赖该调用来处理我的问题。
我使用PDO和Zend_DB连接到数据库。
有什么建议吗?
答案 0 :(得分:1)
您用于日期存储的字段类型是什么?它不适用于日期时间。
快速测试:
-- 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