首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL和PHP日期和时间备忘单

MySQL和PHP日期和时间备忘单
EN

Stack Overflow用户
提问于 2013-01-18 02:20:47
回答 1查看 936关注 0票数 0

我对MySQL数据库中日期和时间的选择感到困惑。是否有一个备忘单给我的基本知识和总结的选择?

我欢迎技术上的修正,但请记住,这并不意味着要作参考。这是一份总结备忘单。

EN

回答 1

Stack Overflow用户

发布于 2013-01-18 02:20:47

MYSQL日期、日期和时间戳备忘单

DATE

支持范围从“1000-01-01”到“9999-12-31”。

以YYY DD格式存储为字符串。

DATETIME

支持范围从“1000-01-01 00:00:00:00”到“9999-12-31 23:59:59”。

以YYYY DD:MM:SS格式存储为字符串.

表示日历上的日期和挂钟上的时间。在创建或更新记录时,它永远不会更改。它不会根据服务器的时区而改变。可以完成从1000年到9999年的日期。

时间戳

支持范围从‘1970-01: 00:00:01’世界协调时到'2038-01-19 03:14:07‘世界协调时

不能早于1970年的日期,所以不能用于生日。

以YYYY DD:MM:SS格式存储为字符串.

时间戳是一个独特的时间点。在MySQL中,它通常用于跟踪对记录的更改,并且可以设置为在创建和/或更新记录时自动更新。

MySQL基于服务器的时区转换时间戳值。它被转换为UTC (协调统一时间)存储,并再次返回到服务器的时区进行检索。

UNIX时间戳

UTC调整了自1970年1/1/1970以来的秒数,存储为带符号的32位整数.

当发生闰秒时,使UTC日的长度不完全为86400秒时,Unix时间数就会出现不连续性。

它们存储在MySQL中的“整型”列中,这些列在内部存储为32位。

MySQL日期函数

MySQL日期和时间格式是字符串,而不是整数。

FROM_UNIXTIME(时间戳)将unix时间戳格式化为字符串

UNIX_TIMESTAMP(mysqldate)将MySQL字符串转换为unix时间戳。

PHP函数

Php日期函数与unix时间戳(即整数)一起工作。

字符串日期( string $format,int $timestamp)从unix时间戳返回MySQL字符串。

int strtotime(字符串$mysqldate)从MySQL字符串返回unix时间戳。

处理不兼容日期时间格式的方法:

PHP将unix时间戳转换为MySQL字符串:

代码语言:javascript
复制
     $mysqldate = date( 'Y-m-d H:i:s', $timestamp );

PHP将MySQL字符串转换为unix时间戳:

代码语言:javascript
复制
     $timestamp = strtotime( $mysqldate );

MySQL将unix时间戳转换为MySQL字符串:

代码语言:javascript
复制
    $query = "UPDATE table SET mysqldatetimefield = FROM_UNIXTIME($timestamp);

MySQL将MySQL字符串转换为unix时间戳:

代码语言:javascript
复制
    $query = "SELECT UNIX_TIMESTAMP(mysqldate) FROM table;

将unix时间戳存储在MySQL整数列中:

代码语言:javascript
复制
    mysql> CREATE TABLE table ( timestamp INTEGER, PRIMARY KEY (timestamp) );
    mysql> INSERT INTO table(timestamp) VALUES (1358402400)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14391478

复制
相关文章

相似问题

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