为了账号安全,请及时绑定邮箱和手机立即绑定

我应该在MySQL中使用日期时间或时间戳数据类型吗?

我应该在MySQL中使用日期时间或时间戳数据类型吗?

慕勒3428872 2019-06-01 15:16:05
我应该在MySQL中使用日期时间或时间戳数据类型吗?您推荐使用日期时间或者是时间戳字段,以及为什么(使用MySQL)?我正在服务器端使用PHP。
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

MySQL中的时间戳通常用于跟踪对记录的更改,并且经常在每次更改记录时更新。如果要存储特定值,则应使用日期时间字段。

如果您想决定使用UNIX时间戳还是原生MySQL日期时间字段,请使用本机格式。您可以通过这种方式在mysql中进行计算。("SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)")将值的格式更改为UNIX时间戳很简单("SELECT UNIX_TIMESTAMP(my_datetime)")当您查询记录时,如果您想使用PHP操作它。


查看完整回答
反对 回复 2019-06-01
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

在MySQL 5和更高版本中,时间戳值从当前时区转换为UTC存储,并从UTC转换回当前时区进行检索。(这只发生在时间戳数据类型上,并且对于其他类型,如datetime。)

默认情况下,每个连接的当前时区是服务器的时间。时区可以按每个连接设置,如MySQL服务器时区支持.


查看完整回答
反对 回复 2019-06-01
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

下面的示例显示了TIMESTAMP更改后,日期类型更改了值。time-zone to 'america/new_york'哪里DATETIME没有变化。


mysql> show variables like '%time_zone%';

+------------------+---------------------+

| Variable_name    | Value               |

+------------------+---------------------+

| system_time_zone | India Standard Time |

| time_zone        | Asia/Calcutta       |

+------------------+---------------------+


mysql> create table datedemo(

    -> mydatetime datetime,

    -> mytimestamp timestamp

    -> );


mysql> insert into datedemo values ((now()),(now()));


mysql> select * from datedemo;

+---------------------+---------------------+

| mydatetime          | mytimestamp         |

+---------------------+---------------------+

| 2011-08-21 14:11:09 | 2011-08-21 14:11:09 |

+---------------------+---------------------+


mysql> set time_zone="america/new_york";


mysql> select * from datedemo;

+---------------------+---------------------+

| mydatetime          | mytimestamp         |

+---------------------+---------------------+

| 2011-08-21 14:11:09 | 2011-08-21 04:41:09 |

+---------------------+---------------------+



查看完整回答
反对 回复 2019-06-01
  • 3 回答
  • 0 关注
  • 2506 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信