通过php在我的数据库中插入时间戳值

时间:2010-06-15 14:42:06

标签: php sql timestamp

我正在使用oracle express,在我的应用程序中,我会在表格中插入一个时间戳值:

$marca = date('y-m-d H:i:s');

    $query = "  INSERT INTO SA_VERSIONE
                    ( ID_ACCETTAZIONE, MARCA_TEMPORALE, TESTO, FIRMA, MEDICO)
                    VALUES
                    ('$id', '$marca', '$testo', '$firma', '$medico')
        ";

        $stid = oci_parse($conn, $query);

        oci_execute($stid);

但执行时返回:

警告:oci_execute()[function.oci-execute]:ORA-01843:mese non valido in ... 并说月份无效

5 个答案:

答案 0 :(得分:0)

你试过这个吗?

$marca = date('dd-mmm-yyyy H:i:s'); 

答案 1 :(得分:0)

current_timestamp应该适合你。

如果MARCA不是TIMESTAMP字段,我建议您将其设为一个。

  $query = "  INSERT INTO SA_VERSIONE
                    ( ID_ACCETTAZIONE, MARCA_TEMPORALE, TESTO, FIRMA, MEDICO)
                    VALUES
                    ('$id', current_timestamp, '$testo', '$firma', '$medico')
        ";

答案 2 :(得分:0)

您可以尝试:
插入SA_VERSIONE                     (ID_ACCETTAZIONE,MARCA_TEMPORALE,TESTO,FIRMA,MEDICO)                     VALUES                     ('$ id','$ marca','$ testo','$ firma',to_date($ marca,'yyyy / mm / dd hh:mi:ss));

查看to_date格式选项。它们必须与您所插入的内容相匹配。

答案 3 :(得分:0)

尝试使用SYSDATE而不是通过PHP生成时间

<?php
$query = "  INSERT INTO SA_VERSIONE
                ( ID_ACCETTAZIONE, MARCA_TEMPORALE, TESTO, FIRMA, MEDICO)
                VALUES
                ('$id', SYSDATE, '$testo', '$firma', '$medico')
    ";

$stid = oci_parse($conn, $query);

oci_execute($stid);
?>

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions172.htm

答案 4 :(得分:0)

看起来Oracle希望格式略有不同,'10 -JUN-15' - 尝试日期('y-M-d H:i:s')。如果时间在那里无效,请查看网址以获取更多想法: - )

http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html