【发布时间】:2020-01-30 08:29:42
【问题描述】:
为了工作,我必须让一个oracle数据库和mysql一个通信。
在 Oracle 上,我有一个 vrp 表,其中包含(除其他外)一个 DATECREATION 列,采用 DATE 格式(唉,这是 SQL 开发人员在我单击它时告诉我的)。它将日期存储在 DD/MON 中。 /YY 格式。
我必须将这些值复制到 mysql 数据库中。起初,我试图忽略它们并将它们用作字符串;但我将不得不操纵它们,所以我需要将它们作为日期。
所以在 PHP 中,我使用 date('Y-m-d', strtotime($row[26])),它工作正常,将 '24-OCT-19' 变成 2019-10-24
然后我尝试将其插入我的 Mysql 数据库,执行以下操作:
$stmt = $conn->prepare("INSERT INTO [...] VALUES (?, ? [...]);
$stmt->bindValue(27, date('Y-m-d', strtotime($row[26]))); (yes there are a lot of columns)
$stmt->execute($row);
如果我回显它看起来不错的数据,我没有混淆我的索引,因为相邻列没有插入日期。但是,第 27 列会收到 0000-00-00。
没有出现错误或警告,所以我什至不知道如何调试。
谢谢。
【问题讨论】:
-
你为什么不像 TO_CHAR( SYSDATE, 'YYYY-MM-DD HH24:MI:SS' ) 那样指示 oracle 将日期更正一起?我也在徘徊,当您发送插入查询时 mysql 会收到什么,但为此您必须激活 mysql 中的日志记录
-
我没有精确,但我对 oracle 数据库没有任何权利。我只能从中选择数据。对于日志记录,我现在正在研究它
-
这只会在文本输出中生成一个日期列,因此它不应干扰您被授予的权利。
-
aaaaah 你的意思是当我从中选择数据时
-
好吧,您的解决方案解决了它。选择不同的方式更容易,因此可能是最好的解决方案,谢谢。如果您将其写为答案,我将验证 ti