mysql存储生日_mysql – 将数据库中的出生日期存储为UNIX时间?

UTC不是整个日历日期(例如出生日期)的绝佳选择.

我的出生日期是1976-08-27.不是1976-08-27T00:00:00Z.

>我目前住在美国太平洋时区.

>我的下一个生日是2016-08-27T00:00:00-07:00至2016-08-28T00:00:00-07:00

>在UTC中,相当于2016-08-27T07:00:00Z,直到2016-08-28T07:00:00Z

当然,如果我在此之前移动到不同的时区,我会在一组完全不同的范围内庆祝我的生日.

>如果我搬到日本,那么我的生日将提前16个小时.

>我的下一个生日将是2016-08-27T00:00:00 09:00至2016-08-28T00:00:00 09:00

>在UTC中,相当于2016-08-26T15:00:00Z,直到2016-08-27T15:00:00Z

因此,出生日期(或周年日,出租日期等)应存储为简单的年,月和日.没有时间,也没有时区.

在MySQL中,使用DATE类型.不要使用DATETIME,TIMESTAMP或包含Unix时间的整数.

还要考虑年龄的评估取决于该人目前所在的时区,而不是他们出生的时区.如果提问者不知道该人的位置 – 则提问者的时区是相关的. “根据你,你多大了?”不一定和“你对我有多大了?”.

当然,你居住的地方实际上并不会使你年长或年轻 – 但这取决于我们如何根据我们当地的日历评估年龄.如果你反而问“我多久几分钟?”然后回答取决于您出生的瞬时时间点 – 可以用UTC测量,但通常作为当地时间和时区给出.但是,在通常情况下,人们通常不会收集这种详细程度.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值