错误试图插入日期到日期时间时(PHP和SQL Server存储过程)
我有同样的问题,但有一点不同from Neil problems(Error when trying to insert date into datetime column),错误试图插入日期到日期时间时(PHP和SQL Server存储过程)
尼尔现在想获取日期时间,所以他可以使用CURRENT_TIMESTAMP
或GETDATE()
。
我的问题是,怎样,如果我有一个像日期字符串:
$date = '2011-03-29';
然后我想用用PHP存储过程插入到SQL Server数据库。
insert into tbl(date)
values($date)
任何人都可以帮忙吗?由于
仅供参考,我有
SQL Server表:
CREATE TABLE tbl
(
date datetime
)
存储过程:
create procedure sp_insertdate
(@date datetime)
as
begin
insert into tbl(date) values(@date)
end
PHP代码:
<?php
$date = '2011-03-29';
include("con.php");
$query = mssql_init("sp_insertdate");
mssql_bind($query, "@date", &$date, SQLINT4); //sqlint4 for datetime
mssql_execute($query);
?>
结果是1900- 1-1,
我试图发送varchar(在PHP中)第一个然后转换为datetime(存储过程中),但有一些错误。
真的我卡住了..对这个问题的任何想法?
我只想使用PHP的存储过程将字符串2011-03-29
插入到SQL Server datetime
列中。我很抱歉,因为我不能说流利的英语
我接到了我朋友的回答,
只是把 mssql_bind($查询, “@date” & $日期,SQLCHAR); //不sqlint4的日期时间,但只是SQLCHAR或SQLVARCHAR
但是非常感谢Groovetrain,我可以也把 $日期= '2011-03-29 00:00:00' 然后把
mssql_bind( $ query,“@date”,& $ date,SQLCHAR,false,false,19); // 19日期字符串的长度
每当我遇到这样的问题(使用mysql),我只需要添加时间(午夜)到日期,以便它可以识别为它期望的datetime
。试试这个:
$date = '2011-03-29';
$date .= ' 00:00:00';
然后像你一样处理剩下的东西。这适用于mysql,也许sql-server也需要它。
是的,我们可以用这种方式 – bungdito 2011-05-03 16:46:15