将带有小数精度的MSSQL时间转换为PHP时间和MySQL DateTime

时间:2013-11-05 19:27:40

标签: php mysql sql-server datetime time

我正在尝试将MSSQL时间转换为PHP时间,然后转换为MySQL数据时间。 MSSQL时间格式如下所示。

2011-10-07 16:55:37.337

我想将这个确切的表示插入到MySQL数据库中。为实现这一目标,我使用的是PHP。

date('Y-m-d H:i:s', strtotime($time))

但如果我这样做,我错过了最后一个小数部分.337

如何使用PHP(包括最后一个小数部分)将此MSSQL时间插入MySQL?

2 个答案:

答案 0 :(得分:0)

date('Y-m-d H:i:s.B', strtotime($time))

但我不知道mysql时间戳或日期时间是否会存储它。您可能需要查看另一种方式,文本字段或不包含带时区的内容。

答案 1 :(得分:0)

MySQL的时间DATETIMETIMESTAMP支持小数秒。请注意,对于DATETIME列,该列必须是DATETIME(6)类型。这仅适用于MySQL 5.6.4。

对于563及以下版本,您无需将数据存储为时态数据类型:

However, when MySQL stores a value into a column of any temporal data type, 
it discards any fractional part and does not store it.

所以不要将它存储为date值,而应存储为浮点值。

您需要使用以下命令将MSSQL时间转换为PHP中的更正格式:

$date = new DateTime($msSQLTime);
$MySQLTime = $date->format('Y-d-m H:i:s.b');

就时区而言,您需要在整个处理过程中维护时区数据。