将具有十进制精度的MSSQL时间转换为PHP时间和MySQL日期时间
我试图将MSSQL时间转换为PHP时间,然后再转换为MySQL数据时间。MSSQL时间格式如下所示 2011-10-07 16:55:37.337 我想将这个精确的表示插入MySQL数据库。为了实现这一点,我正在使用PHP 日期'Y-m-d H:i:s',strotime$时间 但是如果我这样做的话,我就错过了小数点后的最后一部分 如何使用包含小数点后一部分的PHP将MSSQL时间插入MySQL将具有十进制精度的MSSQL时间转换为PHP时间和MySQL日期时间,php,mysql,sql-server,datetime,time,Php,Mysql,Sql Server,Datetime,Time,我试图将MSSQL时间转换为PHP时间,然后再转换为MySQL数据时间。MSSQL时间格式如下所示 2011-10-07 16:55:37.337 我想将这个精确的表示插入MySQL数据库。为了实现这一点,我正在使用PHP 日期'Y-m-d H:i:s',strotime$时间 但是如果我这样做的话,我就错过了小数点后的最后一部分 如何使用包含小数点后一部分的PHP将MSSQL时间插入MySQL date('Y-m-d H:i:s.B', strtotime($time)) 但我不知道mysq
date('Y-m-d H:i:s.B', strtotime($time))
但我不知道mysql时间戳还是日期时间会存储这个。您可能需要从另一个角度来考虑,要么是文本字段,要么不包含文本字段,要么是带有时区的内容。MySQL的时间日期时间和时间戳支持分数秒。请注意,对于DATETIME列,该列的类型必须为DATETIME6。这只适用于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.
因此,不要将其存储为日期值,而是作为浮点值
您需要使用以下方法将MSSQL时间转换为PHP中的正确格式:
$date = new DateTime($msSQLTime);
$MySQLTime = $date->format('Y-d-m H:i:s.b');
就时区而言,您需要在整个处理过程中维护时区数据。您还可以反转分钟和秒。感谢您指出这一点。修正了。你在strotime内有格式。谢谢你的建议。但这只有在我使用Mysql版本5.6.4或更高版本时才起作用。我目前使用的是版本5.5.27。@kidonchu不会将其存储为临时值,而是浮点值。