将mssql datetime2转换为mysql datetime

时间:2019-03-15 08:40:54

标签: php mysql sql-server

我要将数据从mssql复制到php变量,需要将其保存到mysql。

 <html>
    <head></head>
    <body>
    <?php

    //MSSql code
    $serverName = "exserver"; //serverName\instanceName
    $connectionInfo = array( "Database"=>"IPD", "UID"=>"user", "PWD"=>"read");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    $tsql = "SELECT rs_date from inc";
    $stmt = sqlsrv_query( $conn, $tsql);  

    //SQL Conn
    $host = "localhost"; /* Host name */
    $user = "root"; /* User */
    $password = ""; /* Password */
    $dbname = "edge_dashboard"; /* Database name */

    $con = mysqli_connect($host, $user, $password,$dbname);
    // Check connection
    if (!$con) {
     die("Connection failed: " . mysqli_connect_error());
    }

    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC)) {
        $d= $row["0"]; 

        //sql code
        $sql = "INSERT INTO critical_sr (sr_lg_dt) VALUES ('$d')";

        if ($con->query($sql) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
        $con->close();
    }
?>
</body>
</html>

我什至尝试了以下方法:

$d= $row["0"];
$sub_dat =$d->format('Y-m-d H:i:s');

$sql = "INSERT INTO critical_sr (sr_lg_dt) VALUES ('$sub_dat')";

我总是遇到此错误“可恢复的致命错误:DateTime类的对象无法转换为in的字符串”。

MSSQL中row["0"]的数据类型为datetime2。我需要将其以日期时间格式保存在MySQL中。

2 个答案:

答案 0 :(得分:0)

感谢您的所有帮助。解决方案很简单。我将代码更改如下。

$ date = $ row [“ 0”];     $ result = $ date-> format('Y-m-d H:i:s');

我在MySQL中将DateTime的大小设置为6,这在插入时增加了不必要的精度。我删除了大小,现在可以正常使用了。没错干杯

答案 1 :(得分:-2)

您可以使用

$sDat =$d->format('Y-m-d H:i:s');

创建一个字符串变量,并在插入语句中使用ti

 $sql = "INSERT INTO critical_sr (sr_lg_dt) VALUES ('$sDat')";