2011-03-23 70 views
1

我有同样的问题,但有一点不同from Neil problemsError when trying to insert date into datetime column),错误试图插入日期到日期时间时(PHP和SQL Server存储过程)

尼尔现在想获取日期时间,所以他可以使用CURRENT_TIMESTAMPGETDATE()

我的问题是,怎样,如果我有一个像日期字符串:

$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列中。我很抱歉,因为我不能说流利的英语

回答

0

我接到了我朋友的回答,

只是把 mssql_bind($查询, “@date” & $日期,SQLCHAR); //不sqlint4的日期时间,但只是SQLCHAR或SQLVARCHAR

但是非常感谢Groovetrain,我可以也把 $日期= '2011-03-29 00:00:00' 然后把

mssql_bind( $ query,“@date”,& $ date,SQLCHAR,false,false,19); // 19日期字符串的长度

4

每当我遇到这样的问题(使用mysql),我只需要添加时间(午夜)到日期,以便它可以识别为它期望的datetime。试试这个:

$date = '2011-03-29'; 
$date .= ' 00:00:00'; 

然后像你一样处理剩下的东西。这适用于mysql,也许sql-server也需要它。

+0

是的,我们可以用这种方式 – bungdito 2011-05-03 16:46:15