首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MySQL日期时间转换为datetime

问将MySQL日期时间转换为datetime
EN

Stack Overflow用户
提问于 2010-09-22 16:04:54
回答 2查看 1.8K关注 0票数 3

我已经找到了解决我的“问题”的适当方法,但是即使在阅读了mysql页面之后,我也不明白它背后的逻辑。

目前,我将注册信息存储在我的系统中的一个表(YYYY-MM-DD hh:mm:ss)中的"datetime“格式化字段中。

当我想在我的php页面上显示数据时,只需简单地发布准确的字段数据就可以显示上面提到的格式。

我认为,只要使用date("Y-m-d",$row["DATE"]),其中$row["DATE"]对应于特定的行值,就会返回所需的格式。

相反,我必须使用:date("Y-m-d", strtotime($row["DATE"]))。

为什么会这样呢?首先,我的$row["DATE"]字段不是字符串。我应该能够简单地重新排列存储在datetime字段中的数据吗?这不是重建我的整个表集的目的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-22 16:11:22

MySQL有一个名为格式化的内置函数,您可以使用它来显示您想要的日期。

代码语言:javascript
复制
SELECT DATE_FORMAT(date_field, '%Y-%m-%d') as date_field FROM table_name

手册有格式列表和以这种方式显示它所需的变量。使用这种方法,将不需要让PHP转换它等。此外,它在PHP方面的代码较少,因为一些MySQL可以很容易地处理。

编辑

抱歉,刚读到你在找解释。

PHP的date函数接受MySQL没有使用的UNIX时间戳。MySQL使用真正的日期格式IE:YYYY-MM-DD HH:MM:SS,如您所知,这将在数年后兼容。UNIX时间戳的范围有限,从1969年到2037年,它是有效的,这使得它对于诸如聊天框消息或预期它们不会出现的项目的“时间戳”非常有用,在这些日期之前,MySQL DATETIME不应该消失,直到年份更改为5位数或世界末日。

阅读UNIX时间戳上的WIKI,了解更多有关它的信息。

票数 5
EN

Stack Overflow用户

发布于 2010-09-23 08:20:51

MySQL确实允许您选择Unix时间戳格式的日期,这样就可以更容易地在PHP中使用日期,这完全是您所要求的。

之前的答案似乎忽略了这一点,或者由于unix时间戳的范围限制而忽略了这一点,但是如果这是您想要的.

代码语言:javascript
复制
SELECT UNIX_TIMESTAMP(datefield) as u_datefield FROM table

将给出时间戳格式的日期,您可以按照PHP中的建议使用该日期:

代码语言:javascript
复制
<?php
$showdate = date("Y-m-d",$row['u_datefield']);
?>

正如前面的答案所示,unix时间戳确实有一个有限的范围,因此,如果您需要在1970年之前或2038年之后的日期,它可能不适合,但对于今天的日常使用,它是很好的。

与日期字符串相比,使用时间戳的主要优点是可以添加和减去时间戳,这对于字符串格式的日期来说要困难得多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3771232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档