我是新手。几天前我开始编写 php 代码。我想将 php 中的“日期时间”数据类型复制到“日期”和“时间”数据类型的字段。
我为日期时间值保留了字段名称 datetime_info。它存在于 try1 表中。 date 是“date”数据类型的字段名称,time 是“time”数据类型的名称。这两个存在于try2表中。
这是我写的。
$result = mysql_query("SELECT * FROM try1");
while ($row = mysql_fetch_array($result))
{
$result_update = mysql_query("INSERT INTO try2 (date, time) VALUES ('".$row_team['datetime_info']."', '".$row_team['datetime_info']."')");
if (!$result_update)
die('Error: ' . mysql_errno() . mysql_error());
}
“try1”表中存储的值是:
id datetime_info
1 2008-10-02 00:00:00
2 2008-10-09 00:00:00
预期的响应应该是存储在各个字段中的日期和时间。然而,输出是
id date time
2 0000-00-00 00:00:00
3 0000-00-00 00:00:00
谁能解释一下原因和方法?我尝试了很多网站,但没有找到任何合适的解释。谢谢你的期待。
问候, 基础 gem
最佳答案
首先,您不必使用 PHP 来完成这里的繁重工作。 MySQL 非常强大,可以自行完成这些类型的任务。
由于您正在将表 try1
中的所有行复制到 try2
(但拆分 datetime 列),因此以下应该有效:
INSERT INTO
`try2`
SELECT
null, DATE( `datetime_info` ), TIME( `datetime_info` )
FROM
`try1`
它的作用是:对于在 try1
中找到的每条记录,将以下值插入到 try2
中:
null
表示使用try2
中id
列的auto_increment
功能(这是假定id
列确实是一个自增主键字段)DATE( `datetime_info` )
表示使用try1
的 TIME( `datetime_info` )
表示使用try1
的
datetime_info
列的 DATE 部分
datetime_info
列的 TIME 部分
只需执行 mysql_query( $sql )
,其中 $sql
是表示上述查询的字符串就足够了。无需先使用 PHP 循环遍历任何结果。
我也打算编写一个 PHP 解决方案,但其他人已经这样做了。我会建议 this answer .
关于php - 在 php/mysql 中将日期时间数据类型转换为日期和时间数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7647606/