Преобразование mssql datetime2 в mysql datetime - PullRequest
0 голосов
/ 15 марта 2019

Я копирую данные из 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 не может быть преобразован в строку в».

Тип данных row["0"] в MSSQL равен datetime2. Мне нужно, чтобы он был сохранен в формате datetime в MySQL.

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Спасибо за вашу помощь. Решение было простым. Я изменил код, как показано ниже.

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

Я установил размер DateTime равным 6 в MySQL, что добавило нежелательную точность при вставке. Я удалил размер, и теперь он работает нормально. Нет ошибок. Приветствия

0 голосов
/ 15 марта 2019

Вы можете использовать

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

для создания строковой переменной и использования ti в вашем операторе вставки с

 $sql = "INSERT INTO critical_sr (sr_lg_dt) VALUES ('$sDat')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...