0

我有一个关于从 MySQL 返回的值的快速问题。

在我的一个表中,我有一列分配了date数据类型。当信息插入数据库时​​,curdate()会自动执行以插入正确的日期。

也就是说,MySQL 认为该值是一个日期。我有一个 php 脚本可以提取该值并将其呈现给用户。现在,从 php 的角度来看,这个值是一个字符串吗?

我想要做的是,如有必要,我应该说,使用拉出的值并将其插入到新表中(例如:10/1/12 由 php 拉出然后插入到新表中)。如果是这种情况,我可以简单地将该值放入新表的数据类型列中date吗?还是 MySQL 不会将其识别为日期?

任何见解都值得赞赏。

4

4 回答 4

0

MySQL 足够聪明,可以将字符串转换为日期。该字符串应该可以是几乎任何标准格式,并且可以正确翻译。

编辑:对不起,我不正确。

您可以使用 PHP 或 MySQL 日期解析函数来处理此问题。在 PHP 中:

date("Y-m-d", strtotime($row['myDateField']));

这是 strtotime 可以解释的有效日期字符串列表: http ://www.php.net/manual/en/datetime.formats.date.php

于 2012-10-01T21:22:12.400 回答
0

您可以使用此方法 DateTime::createFromFormat

http://www.php.net/manual/en/datetime.createfromformat.php

于 2012-10-01T21:22:54.617 回答
0

您可以使用 mySQL str_to_date() 将字符串转换为日期...因此您可以使用 mySQL 以日期格式(“yyyy-MM-dd”)直接保存字符串,然后使用 mySQL 方法 str_to_date() 进行转换。
这里

于 2012-10-02T07:42:43.503 回答
0

MySQL 没有原生日期的语法。相反,它使用默认日期格式自动将日期从/转换为字符串:

mysql> SELECT @@date_format, @@datetime_format;
+---------------+-------------------+
| @@date_format | @@datetime_format |
+---------------+-------------------+
| %Y-%m-%d      | %Y-%m-%d %H:%i:%s |
+---------------+-------------------+
1 row in set (0.00 sec)

...其中格式代码是DATE_FORMAT()函数文档中解释的格式代码。您始终可以自己控制演员阵容,例如:

话虽如此,事实是太多工具依赖@@date_format@@datetime_format保持其出厂值,因此为整个系统更改它们可能会破坏很多东西。

PHP 扩展可以将日期列转换为DateTime对象(您没有说您正在使用哪个),但目前没有一个内置的对象可以做到这一点,这很遗憾。

于 2012-10-02T07:54:05.150 回答