gpt4 book ai didi

date - SQL 不接受 PowerShell 日期格式

转载 作者:行者123 更新时间:2023-12-02 23:13:57 26 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。当服务器的 Region and Language 设置设置为 English (United States) 时,包含日期和时间的对象没有问题。但是,当我将其更改为我的国家/地区本地 Dutch (Belgium) 时,我的某些 PowerShell 脚本遇到了问题。

是否需要设置 PowerShell 中的某处变量来解决此问题?还是我必须始终在服务器上默认使用英文日期格式?

例如,我们使用 Don Jones 提供的 SQL 模块 来填充 SQL 数据库。此行在设置为荷兰语时会生成错误,但在设置为英语时不会:

if ($properties[$property] -eq 'datetime2') { [datetime]$prop = $result.GetDateTime($result.GetOrdinal($property)) }

我检索日期的唯一方法是 Get-Date没有什么特别的。当设置为 Dutch (Belgium) 时会生成此错误:

Exception calling "ExecuteNonQuery" with "0" argument(s): "Conversion failed when converting date and/or time from char
acter string."

我在为 Excel 生成东西时遇到了同样的问题床单。它还提示日期时间格式。

最佳答案

要将 DateTime 字段等信息导出到 SQL,将使用默认语言设置 English (United States)

因此,当您的区域和语言设置与 SQL 的默认设置不同时,即:英语(美国) <> 荷兰语(比利时),您应该在代码中使用以下格式以符合英语默认设置:

"Key" = (Get-Date -Format "yyyy-MM-dd HH:mm:ss")
"Key" = $_.whenCreated.ToString("yyyy-MM-dd HH:mm:ss")

另一种解决方案是更改 SQL Express 2014 中输入的默认语言:

  1. 右键单击服务器实例并选择Properties > Advanced
  2. 默认语言更改为荷兰语(或您使用的语言)
  3. Ok 确认
  4. 仍然在 SQL Management Studio 中转到 Security > Logins(在 Databases 下方)
  5. 双击您的用户名并选择下面的荷兰语作为默认语言
  6. 重新启动 SQL Management Studio 就可以了

结果:当您在 PowerShell 代码中使用 CmdLet Get-Date 时,它将在将数据传输到 SQL 时按设计工作。 SQL 和 Windows 的系统语言仍然是英语,但使用的格式是荷兰语。

关于date - SQL 不接受 PowerShell 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25055172/

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