mysql算出美国时间_mysql – 当日期存储为unix时间戳时,如何计算美国东部时间3月9日19日出生的人数?...

你可以手动进行转换;如果你已经将区域数据加载到MySQL中,那么你的数据已经回到了1918年.让我们来看看列表:

SET @timezone = "America/Toronto";

SELECT FROM_UNIXTIME(0) + INTERVAL Transition_Time SECOND AS change_time, Offset, Abbreviation

FROM mysql.time_zone_transition t

LEFT JOIN mysql.time_zone_transition_type tt ON (

t.Time_zone_id = tt.Time_zone_id AND

t.Transition_type_id = tt.Transition_type_id

)

LEFT JOIN mysql.time_zone_name n ON (

t.Time_zone_id = n.Time_zone_id

)

WHERE n.Name = @timezone

AND Transition_time < 0

ORDER BY change_time ASC;

修改您的样本日期,我们可以提取:

SET @timezone = "America/Toronto";

SET @birthday = -73440000;

SELECT ('1970-01-01 00:00:00' + INTERVAL @birthday SECOND) + INTERVAL Offset SECOND AS offsetDate

FROM mysql.time_zone_transition t

LEFT JOIN mysql.time_zone_transition_type tt ON (

t.Time_zone_id = tt.Time_zone_id AND

t.Transition_type_id = tt.Transition_type_id

)

LEFT JOIN mysql.time_zone_name n ON (

t.Time_zone_id = n.Time_zone_id

)

WHERE n.Name = @timezone

AND Transition_time < @birthday

ORDER BY Transition_time DESC

LIMIT 1;

由于它在日期之前选择最近的转换,因此它将不返回第一次转换之前的日期的记录.这应该作为一个指标,表明你处于未知状态并且必须弥补自己的偏移量.

如果您想将第一个转换时间用作后备,则可以删除Transition_time

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值