我有一个带有表的Mysql DB,我必须管理表内的时区。
global.time_zone和session.time_zone是UTC。
我将举一个简短的例子,我想设置一些条件。
我有 5 个不同的"IP":
例如:
-
'1.1.1.1.1'
' 1.1.1.1.2'
'1.1.1.1.3'
'1.1.1.1.4'
'1.1.1.1.5'
我有一列"updated_at"(日期时间(
现在,我想满足以下条件:
- IP 1 = 格林威治标准时间
- IP 2 = GMT+1
- IP 3 = GMT+2
- IP 4 = GMT+3
- IP 5 = GMT+4
因此,根据表格上的"IP",我将在"updated_at"上获得相关时区。
-
我应该只操作前端的时间,还是有一种方法可以在发送查询之前转换表上的 TZ? 这里最好的解决方案是什么?
-
将来如何处理 DST 开/关?
前面是 React.js,后端是 Node.js。
谢谢!
存储时间和日期数据取决于你在检索、操作和显示方面需要做什么。
它代表过去(即日志(还是未来(即任命(?
过去很容易发生,你可能知道何时何地。但未来,DST可能会影响它。
在您的情况下,它看起来像一个显示问题,然后您可以选择谁将支付 CPU 账单,您的公司或用户。
因此,您可以使用 CONVERT_TZ(( 检索它并保存在 UTC'0 中。我建议您使用此规则创建一个视图。(也许新队友不知道这种转换(。在这种情况下,处理成本由您承担。 另一方面,您可以将其传输给用户,并在客户端调整 UTC'0 -> IP。
在某些情况下会变得混乱,例如,当您有一个向用户显示来自不同时区的数据的日志时。或者当您要向此用户发送电子邮件时。在这种情况下,您还必须存储用户时区。
我会推荐这个视频。