gpt4 book ai didi

javascript - 处理从 javascript 到 MySQL 到 javascript 到 MS SQL 到 javascript 的时区

转载 作者:行者123 更新时间:2023-11-29 09:56:00 25 4
gpt4 key购买 nike

我正在使用 NodeJS/javascript 来确定具有系统时区的当前日期。现在我想用 UTC+0 将此日期插入到 MySQL 中。之后,我想再次使用 UTC+0 使用 NodeJS/javascript 从 MySQL 选择此日期,并将其插入到 MS SQL 中,我希望它再次存储为 UTC+0。最后,我再次选择 NodeJS/javascript,但这次是从 MS SQL,而且我希望这次的日期位于系统中现在使用的时区,无论我将来在哪里。

这是一个例子:对于 01.01.2018 15:00:00 UTC+1(德国冬季时间),我希望它以 UTC+0 存储在两个数据库中。当夏天来临时,我的系统时区更改为 UTC+2(德国夏令时),或者我搬到另一个国家,例如UTC-5 我想从 MS SQL 获取日期,并将其转换为我的系统自动使用的时区。

所以问题是:

  • 如何将带有系统时区的 NodeJS 中的日期插入到带有 UTC+0 的 MySQL 中?
  • 如何选择这个日期,以便我可以使用 NodeJS 将其插入到 MS SL 中,并且那里也是 UTC+0?
  • 如何使用 NodeJS 从 MS SQL 中选择日期,以便它再次具有系统时区?

附加信息:我有两个 NodeJS 程序相互通信。第一个(客户端)正在将日期插入到他的 MySQL 数据库中,并将该日期也发送到服务器应用程序。他之所以将其插入到自己的 MySQL 数据库中是出于同步原因,当服务器未运行时,以便下次获取它们。当服务器从客户端接收到日期时,这些数据应存储在服务器的 MS SQL 数据库中。服务器管理员可以随时将这些日期导出到 Excel 中。但日期必须从 MS SQL (UTC+0) 中的日期转换为服务器系统时区,以便在 Excel 文件中日期位于系统时区而不是 UTC+0

最佳答案

我认为这个解决方案可以进行一些优化,但我会先回答您的问题。

How can I insert my date from NodeJS with the systems time zone to MySQL with UTC+0?

您可以使用new Date()获取系统时区 - 将其转换为UTC格式,MySQL会理解您可以这样做new Date().toISOString()

要将此值存储在 MySQL 中,您需要 DateTime field 。只需插入该值就应该可以工作,但如果它不只是将其解析为日期。

How can I select this date, so that I can insert it with NodeJS into the MS SQL and it's UTC+0 there too?

您已经以标准格式插入了它,该格式始终为 UTC+0。您只需选择它并以同样的方式插入即可。

How can I select the date from MS SQL with NodeJS so that it has the systems time zone again?

那么 - 您在 MS SQL 中有一个 DateTime 字段,您将通过 Node.JS 查询该字段 - 该字段采用 UTC+0 格式,并且您想根据您的服务器时区获取相应的时间?

好吧 - 如果你这样做 new Date().getTimezoneOffset() 应该会给你你的时区偏移量。所以它应该变成这样:

var date = MSSQLWrapper.someOperation('select d_field from ...');
var offset = new Date().getTimezoneOffset(); // Your offset
date.setHours(date.getHours() + offset); // Add your offset
console.log(date) // your aligned date.

编辑

如果您想更改 SQL 选择时的时区,您可以使用 AT TIME ZONE

SELECT your_date from your_table   
AT TIME ZONE 'Eastern Standard Time' AS my_new_date

您可以从服务器端传递查询中的时区名称。

或者您也可以查看TODATETIMEOFFSET

这个问题也有一些很好的例子:Convert datetime value from one timezone to UTC timezone using sql query

关于javascript - 处理从 javascript 到 MySQL 到 javascript 到 MS SQL 到 javascript 的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53833778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com