Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将具有十进制精度的MSSQL时间转换为PHP时间和MySQL日期时间_Php_Mysql_Sql Server_Datetime_Time - Fatal编程技术网

将具有十进制精度的MSSQL时间转换为PHP时间和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

我试图将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))
但我不知道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不会将其存储为临时值,而是浮点值。