用php将不同的日期格式插入mysql

时间:2016-09-27 07:43:56

标签: php mysql

我有一个用PHP编写的上传脚本,它负责处理CSV中的数据,并将其插入到每个上传的CSV的特定表格中。

我需要解决一个问题,即不能正确插入来自不同日期格式的数据。除了时间之外,它需要涵盖所有日期格式并保存为YYYY-MM-DD(2016-09-27)。 它看起来像这样:

   Database table:  
        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
        USER VARCHAR(50) NOT NULL,
        Date DATE,
        Time TIME

    PHP/MySQL
        $stmt = $conn->prepare("INSERT INTO ".$table_name." (User, Date,Time) VALUES (?,?,?)");
        $stmt->bind_param("sss", $user, $date,$time);

        $user = $data_array[$i][0];
        $date = $data_array[$i][1];
        $time = $data_array[$i][2];

        $stmt->execute();

我一直在阅读关于STR_TO_DATE但我不确定在这种情况下我应该在哪里使用它。

1 个答案:

答案 0 :(得分:0)

首先我注意到你在使用bind_param()之后定义了变量 Sub AlignLast3Columns() Dim lColumn As Long, x As Long, y As Long, z As Long Dim Target As Range Dim Data() With Worksheets("After") x = .Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row y = .Cells.Find("*", searchorder:=xlByColumns, searchdirection:=xlPrevious).Column Set Target = .Range("A1", .Cells(x, y)) End With Data = Target.Value2 lColumn = UBound(Data, 2) For x = 1 To UBound(Data, 1) If IsEmpty(Data(x, lColumn)) Then For y = lColumn To 1 Step -1 If Not IsEmpty(Data(x, y)) Then For z = 0 To 2 Data(x, lColumn - z) = Data(x, y - z) Data(x, y - z) = "" Next Exit For End If Next End If Next Target.Value2 = Data End Sub

像这样:

$user $date $time

下一步: 您可以使用MySQL日期格式函数。

请参阅:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

使用此功能,您可以将字符串日期转换为有效的MySQL日期。

$user = $data_array[$i][0]; $date = $data_array[$i][1]; $time = $data_array[$i][2]; $stmt->bind_param("sss", $user, $date,$time);

将格式替换为数据格式

手册示例:VALUES(?,DATE_FORMAT('?','format'),?)