1

编辑:一些用户注意到这是 ADO.NET 问题的重复, 我如何从 SQL Server 获取 DateTime 数据忽略时区问题?

请务必阅读我的标签和我的代码。这是nodejs 问题与 ADO 库无关。它甚至不能在 Windows 上运行。提供的链接中提到的选项甚至在 mssql-npm 中都不存在

我正在为公司出勤创建一个数据库,该数据库跨越 3 个时区。

SQL Server 的问题是我读取的工作时间与每个时区不同。它注册1969-12-31T23:00:00.000Z为 ,并且在一个时间线中注册为 06:00,在另一个时间线中注册为 08:00。无论时区如何,我都需要它恰好在 08:00。这意味着,我国西部地区为 08:00,我国东部地区为 08:00。

当我尝试禁用 UseUTC 时,nodejs 将我的时区翻译了两次。例如,这是我将masuk字段发送为 08:00


发送到服务器:

发送到服务器


发送到 SQL Server 的查询:

UPDATE shift SET name = 'Shift 1', masuk = '2019-10-28T01:00:00.000Z', keluar = '2019-10-28T10:00:00.000Z', tolerance = 15 WHERE id = 1


收到结果回来

结果


并向用户显示为:

显示给用户

我的国家位于 GMT+7 至 GMT+9。我不介意我是否必须展平时区。但是怎么做呢?有没有办法完全忽略时区来读取时间?它使我的工作变得不必要地复杂。

我在用:

  • SQL Server 2012
  • 材质界面
  • 日期-fns
  • 节点 12
  • mssql 模块

这是我从用户输入中获取时间的代码

<MuiPickersUtilsProvider utils={DateFnsUtils}>
    <KeyboardTimePicker
        key={component.field.toString()}
        variant="inline"
        value={value}
        label={component.title}
        onChange={this.eventHandler(component.field).bind(this)}
        format="HH:mm"
    />
</MuiPickersUtilsProvider>

谢谢你的帮助。

数据库用于time(7)存储时间

4

0 回答 0