如何通过php在mysql中返回日期值

时间:2012-10-01 21:20:23

标签: php mysql date sqldatatypes

我对MySQL返回的值有一个快速的问题。

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

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

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

感谢任何见解。

4 个答案:

答案 0 :(得分:0)

MySQL非常聪明,可以将字符串转换为日期。该字符串应该可以是任何标准格式,它将正确翻译它。

编辑:对不起,我错了。

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

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

你可以使用mySQL str_to_date()将字符串转换为日期...所以你可以用mySQL直接保存一个带日期格式的字符串(" yyyy-MM-dd")然后用mySQL方法转换它STR_TO_DATE()。
HERE

答案 3 :(得分: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个对象(您没有说明您正在使用哪个对象)但是当前没有任何内置的对象执行它,这是一个可惜。