1

为了工作,我必须让一个 oracle 数据库和一个 mysql 进行通信。

在 Oracle 上,我有一个vrp表,其中包含(除其他外)一个 DATECREATION 列,采用 DATE 格式(唉,这是 SQL 开发人员在我单击它时告诉我的内容)。它将日期存储在 DD/MON 中。/YY 格式。 显示 DATECREATION 列的类型为 DATE 的 sql developer 屏幕截图 sql developer 的屏幕截图显示 DATECREATION 列以 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.

没有引发错误或警告,所以我什至不知道如何调试它。

谢谢你。

4

1 回答 1

1

重写您的 oracle 选择语句。

并使用以下文本转换,以获取 mysql 日期格式为字符串

TO_CHAR( SYSDATE, 'YYYY-MM-DD HH24:MI:SS' )
于 2020-01-30T09:26:59.457 回答