插入日期时间值之间的差异时出错

时间:2015-10-26 04:17:35

标签: php sql-server datetime

我在我的数据库中有约会,我正在尝试获取该日期,并且在获得与当前日期的差异之后它正常工作。我得到了与日期时间的差异,但是当我尝试将差值更新为sql时,我遇到了以下错误:

  

错误“as”数组([0] =>数组([0] => IMSSP [SQLSTATE] => IMSSP   [1] => -16 [code] => -16 [2] =>参数1的PHP类型无效   被指定了。 [信息]“

我不知道在sql中存储差异日期时间需要使用哪种数据类型。我希望下面的代码是正确的。

请帮帮我。

这是我的代码ebreport数据库,我获取日期和ebtest数据库我正在尝试将值更新为btime列。我已尝试Varchar(Max)datetimedatetimeint

<?php


    date_default_timezone_set('Asia/Kolkata');

       function get_format($df) {
       $str = '';
       $str .= ($df->invert == 1) ? ' - ' : '';
       if ($df->y > 0) {
        // years
        $str .= ($df->y > 1) ? $df->y . ' Years ' : $df->y . ' Year ';
    } if ($df->m > 0) {
        // month
        $str .= ($df->m > 1) ? $df->m . ' Months ' : $df->m . ' Month ';
    } if ($df->d > 0) {
        // days
        $str .= ($df->d > 1) ? $df->d . ' Days ' : $df->d . ' Day ';
    } if ($df->h > 0) {
        // hours
        $str .= ($df->h > 1) ? $df->h . ':': $df->h . ':';
    } if ($df->i > 0) {
        // minutes
        $str .= ($df->i > 1) ? $df->i . ':' : $df->i . ':';
    } if ($df->s > 0) {
        // seconds
        $str .= ($df->s > 1) ? $df->s . '': $df->s . '';
    }

    echo $str;
}
    $serverName = "MAHATHERMOHAMED\MAHATHER";
    $connectionInfo = array( "Database"=>"icd", 'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8');
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    if( $conn ) 
    {

    }
    else
    {
        die( print_r( sqlsrv_errors(), true));
    }

    $sql="select * from ebreport";
    $params = array();
    $options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
    $stmt = sqlsrv_query( $conn, $sql , $params, $options );
    $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC);

    $date1 = new DateTime($row[bstart]);
    echo $date1->format("g:i:s A")."<br>";

    $date2 = new DateTime("now");
    echo $date2->format("g:i:s A")."<br>";

    $diff = $date1->diff($date2);
    print $diff->format("%H:%I:%S");

    $query2 = "UPDATE ebtest SET btime=(?) WHERE (ebtype ='Training')";
    $var2 = array($diff);
    $stm2 = sqlsrv_query( $conn, $query2, $var2);
    if( $stm2 == false )
    {
        die( print_r( sqlsrv_errors(), true));
    }
    else
    {
        echo " query inserted";
    }
?>

0 个答案:

没有答案